На сайте не отправляется почта. На сервер надо что-то ставить?

Главные вкладки

Аватар пользователя VasyOK VasyOK 13 ноября 2023 в 10:16

Всем привет!
На сайте не отправляется почта.

Когда пользователь заполняет 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

Письмо новому юзеру тоже не отправляется примерно с той же ошибкой.

На сервер что-то надо ставить?

Комментарии

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 13 ноября 2023 в 16:46

у вас vds? я настроил отправку почты из wsl через яндекс через ssmtp. там надо пароль приложения и чтобы обратный адрес был ваш почтовый адрес яндекса.

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 13 ноября 2023 в 20:21

для собственного сервера буду ставить postfix. ищи тогда smtp выход через кого будешь отправлять. про порты и шифрование не забудь. мне помогла в свое время статья из хакер ру. кажется эта https://xakep.ru/2019/06/18/mail-server-security/

Аватар пользователя gun_dose gun_dose 13 ноября 2023 в 23:49
1

Ставь Symfony mailer, настраивай SMTP транспорт. Практически любая почтовая служба позволяет создать почту для сайта. В том числе Gmail. Порты и шифрование надо настраивать в соответствии с инструкциями от почтового провайдера.

PS: если лень возиться с SMTP, там в Symfony mailer есть и другие способы отправки.

Аватар пользователя VasyOK VasyOK 15 ноября 2023 в 17:06

Для начало мене бы просто послать письма с сервера без всяких Гугл, Яндекс и прочего.

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
Но само письмо я не вижу.

Аватар пользователя bsyomov bsyomov 28 ноября 2023 в 15:39
1

Sendmail такое себе решение, сложное и устаревшее.
Лучше и проще настроить postfix или exim.
Чтобы настроить почтовик надо немало знать, на самом деле о том, как это всё работает, чтобы настроить его для своей задачи. Брать какой-то пошаговый howto довольно бесполезно в любых ситуациях, а в этой и подавно... Даже если будет работать, доставляемость чаще всего будет никакая. Без этих знаний куда разумнее будет использовать готовый внешний сервис.

Symfony mailer подразумевает использование какого-то работающего внешнего почтового сервера smtp или другого совместимого транспорта. Он сам не доставляет почту удалённому клиенту. Он формирует письмо, и отправляет её со стороны drupal на промежуточный сервис, который уже занимается собственно доставкой.

Аватар пользователя VasyOK VasyOK 29 ноября 2023 в 11:57

Хорошо, что можно поставить с минимальными знаниями? Можно через внешний сервис. Но не Яндекс.
То, что сейчас я накрутил - письма не приходят на gmail. На всякий стремные "личные" почтовики - приходят.

Аватар пользователя bsyomov bsyomov 29 ноября 2023 в 14:09

С минимальными знаниями внешний сервис. Их много.

Чтобы доставлялось как-то со своего сервера, минимально надо проверить и настроить SPF, DKIM, PTR. А также пробить ip виртуалки по спам листам.

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 29 ноября 2023 в 19:44

Недавно завел почту на vds . Установил postfix. Думал не работает. Оказалось почта в спаме.
Настроил только hostname, hostname -f и hosts.

Аватар пользователя bsyomov bsyomov 30 ноября 2023 в 15:34

Так она чаше всего и будет в спаме - этого мало.
Как минимум, надо настроить SFP запись, DKIM, например с помощью opendkim, и PTR соответствующий имени хоста почтовика.

Аватар пользователя bsyomov bsyomov 30 ноября 2023 в 20:21

SPF это просто TXT запись, и она должна быть просто правильно указана. Т.е. указано откуда можно принимать вашу почту.
А вот с DKIM, всё куда сложнее. Это криптографическая подпись письма на стороне отправителя. Оно не только в DNS, оно и на сервере, собственно, подписывать должен какой-то софт, который надо настроить, сгенерировать пару ключей, и публичный ключ поместить в ту самую DNS запись.

И уж лучше совсем её убрать, если всё это гарантировано не настроено правильно и не проверено. Хотя без DKIM в среднем доставляемость будет и ниже, с криво настроенным будет почти наверняка падать в спам на большинстве сервисов.

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 30 ноября 2023 в 21:53

Но есть обстоятельства по которым я делать это не буду. Это бюджет и отсутствие необходимости в письмах. Только сервисные сообщения.

Аватар пользователя Andruxa Andruxa 1 декабря 2023 в 0:10

Дело еще в том, что IP из пула датацентров, как правило, находятся в блек-листах (что логично), и при локальной отправке почты, хоть через sendmail, хоть через postfix, хоть через exim - письмо, в лучшем случае, попадет в спам, а в худшем - smtp получателя просто откажется его принимать.

Аватар пользователя bsyomov bsyomov 1 декабря 2023 в 1:26

Вообще-то не совсем всё так плохо. Часть адресов действительно находится в блек листах, если на них были кривые почтовики, или ими пользовались спамеры, но это решаемая проблема.

Аватар пользователя Andruxa Andruxa 1 декабря 2023 в 2:37

доводилось вытаскивать ip впс-ки из блек листов - то еще удовольствие, уж проще за почтовый хостинг заплатить

Аватар пользователя bsyomov bsyomov 1 декабря 2023 в 15:51

Вопрос масштабов и стоимости поддержки.
Но в целом да, свои мелкие почтовики имеют не много смысла. Всё равно надо их обслуживать, проверять на попадание в те же блеклисты, что не всегда хорошо автоматизируется. Да и вообще, почта, даже только исходящая, это всегда лишние проблемы и потраченное время.

Я, вот, всё это неплохо умею, но почта моих доменов обслуживается одним из хостеров за мелкую копеечку, а не на одном из моих серверов.

Аватар пользователя VasyOK VasyOK 30 ноября 2023 в 12:10

Я так понимаю нужно моудуль smtp ставить. На шередах ставил - вроде помагало, когода почта не регулярно с сайта шла. А сервер надо что-то ставить для работы этого модуля?

Аватар пользователя bsyomov bsyomov 30 ноября 2023 в 15:44

Если не используется внешний почтовый сервер, конечно нужно - чем-то посылать-то всё равно нужно.

Всё что ставится на стороне Drupal, требует чего-то внешнего:

  • это может быть и внешний сервис
  • почтовый сервер на стороне той же виртуалки
  • почтовый сервер на стороне хостера

Модули просто дают разные дополнительные возможности, например, делать атачи, использовать не только php mail(), использовать какие-то не smtp сервисы для отправки и.т.п. Т.е. расширяют возможности взаимодействия с почтой, но не доставляют её клиентам непосредственно.

Аватар пользователя bsyomov bsyomov 30 ноября 2023 в 15:53

То нужно что-то что позволит с ним работать, по нужному протоколу. Например, если это smtp, то это может быть и https://www.drupal.org/project/smtp, и https://www.drupal.org/project/symfony_mailer с smtp транспортом и наверняка ещё есть что-то.