Всем привет!
На сайте не отправляется почта.
Когда пользователь заполняет webform, видит:
Unable to send email. Contact the site administrator if the problem persists.
В эррор логе 2 ошибки:
1
Error sending email (from Sasha <some@gmail.com> to siteadmin@gmail.com with reply-to Sasha <some@gmail.com>).
2
Contact: Email not sent for Email confirmation handler because a To, CC, or BCC email was not provided
Письмо новому юзеру тоже не отправляется примерно с той же ошибкой.
На сервер что-то надо ставить?
Комментарии
у вас vds? я настроил отправку почты из wsl через яндекс через ssmtp. там надо пароль приложения и чтобы обратный адрес был ваш почтовый адрес яндекса.
Юрий, Яндекс он как бы не для всех.
У меня VDS.
sendmail поставил. А надо ли? Почту все равно не шлет.
для собственного сервера буду ставить postfix. ищи тогда smtp выход через кого будешь отправлять. про порты и шифрование не забудь. мне помогла в свое время статья из хакер ру. кажется эта https://xakep.ru/2019/06/18/mail-server-security/
Ставь Symfony mailer, настраивай SMTP транспорт. Практически любая почтовая служба позволяет создать почту для сайта. В том числе Gmail. Порты и шифрование надо настраивать в соответствии с инструкциями от почтового провайдера.
PS: если лень возиться с SMTP, там в Symfony mailer есть и другие способы отправки.
Для начало мене бы просто послать письма с сервера без всяких Гугл, Яндекс и прочего.
sendmail
Поставил sendmail по инструкции.
https://kenfavors.com/code/how-to-install-and-configure-sendmail-on-ubuntu/
Послал себе письмо с командной строки. Написало:
vasyok@gmial.com... queued
Не вижу этого письма ни в входящих не в спаме.
Письма с сайта тоже - написано что идут, но мне они не доходят.
symfony mailer
Поставил:
https://www.drupal.org/project/symfony_mailer
Он же из каробки со встроенным транспортом работает?
Отправил тестовое письмо. Написало.
An attempt has been made to send an email to vasyok@gmail.com
Но само письмо я не вижу.
Sendmail такое себе решение, сложное и устаревшее.
Лучше и проще настроить postfix или exim.
Чтобы настроить почтовик надо немало знать, на самом деле о том, как это всё работает, чтобы настроить его для своей задачи. Брать какой-то пошаговый howto довольно бесполезно в любых ситуациях, а в этой и подавно... Даже если будет работать, доставляемость чаще всего будет никакая. Без этих знаний куда разумнее будет использовать готовый внешний сервис.
Symfony mailer подразумевает использование какого-то работающего внешнего почтового сервера smtp или другого совместимого транспорта. Он сам не доставляет почту удалённому клиенту. Он формирует письмо, и отправляет её со стороны drupal на промежуточный сервис, который уже занимается собственно доставкой.
Хорошо, что можно поставить с минимальными знаниями? Можно через внешний сервис. Но не Яндекс.
То, что сейчас я накрутил - письма не приходят на gmail. На всякий стремные "личные" почтовики - приходят.
С минимальными знаниями внешний сервис. Их много.
Чтобы доставлялось как-то со своего сервера, минимально надо проверить и настроить SPF, DKIM, PTR. А также пробить ip виртуалки по спам листам.
Недавно завел почту на vds . Установил postfix. Думал не работает. Оказалось почта в спаме.
Настроил только hostname, hostname -f и hosts.
Так она чаше всего и будет в спаме - этого мало.
Как минимум, надо настроить SFP запись, DKIM, например с помощью opendkim, и PTR соответствующий имени хоста почтовика.
Да, там dkim и spf уже были в днс.
SPF это просто TXT запись, и она должна быть просто правильно указана. Т.е. указано откуда можно принимать вашу почту.
А вот с DKIM, всё куда сложнее. Это криптографическая подпись письма на стороне отправителя. Оно не только в DNS, оно и на сервере, собственно, подписывать должен какой-то софт, который надо настроить, сгенерировать пару ключей, и публичный ключ поместить в ту самую DNS запись.
И уж лучше совсем её убрать, если всё это гарантировано не настроено правильно и не проверено. Хотя без DKIM в среднем доставляемость будет и ниже, с криво настроенным будет почти наверняка падать в спам на большинстве сервисов.
Но есть обстоятельства по которым я делать это не буду. Это бюджет и отсутствие необходимости в письмах. Только сервисные сообщения.
Дело еще в том, что IP из пула датацентров, как правило, находятся в блек-листах (что логично), и при локальной отправке почты, хоть через sendmail, хоть через postfix, хоть через exim - письмо, в лучшем случае, попадет в спам, а в худшем - smtp получателя просто откажется его принимать.
Вообще-то не совсем всё так плохо. Часть адресов действительно находится в блек листах, если на них были кривые почтовики, или ими пользовались спамеры, но это решаемая проблема.
доводилось вытаскивать ip впс-ки из блек листов - то еще удовольствие, уж проще за почтовый хостинг заплатить
Вопрос масштабов и стоимости поддержки.
Но в целом да, свои мелкие почтовики имеют не много смысла. Всё равно надо их обслуживать, проверять на попадание в те же блеклисты, что не всегда хорошо автоматизируется. Да и вообще, почта, даже только исходящая, это всегда лишние проблемы и потраченное время.
Я, вот, всё это неплохо умею, но почта моих доменов обслуживается одним из хостеров за мелкую копеечку, а не на одном из моих серверов.
а вот попадания в блек лист не хотелось бы. в следующем транше денег сделаю как положено.
Я так понимаю нужно моудуль smtp ставить. На шередах ставил - вроде помагало, когода почта не регулярно с сайта шла. А сервер надо что-то ставить для работы этого модуля?
Если не используется внешний почтовый сервер, конечно нужно - чем-то посылать-то всё равно нужно.
Всё что ставится на стороне Drupal, требует чего-то внешнего:
Модули просто дают разные дополнительные возможности, например, делать атачи, использовать не только php mail(), использовать какие-то не smtp сервисы для отправки и.т.п. Т.е. расширяют возможности взаимодействия с почтой, но не доставляют её клиентам непосредственно.
"Если не используется внешний почтовый сервер" - а если используется?
То нужно что-то что позволит с ним работать, по нужному протоколу. Например, если это smtp, то это может быть и https://www.drupal.org/project/smtp, и https://www.drupal.org/project/symfony_mailer с smtp транспортом и наверняка ещё есть что-то.