Невозможно отправить электронное письмо. Обратитесь к администратору сайта, если проблема не устранена

8

Когда моя веб-форма заполнена и отправлена, я перенаправляюсь на страницу с текстом:

Спасибо за отправку.

но есть красная коробка с предупреждением там, где написано:

Невозможно отправить электронное письмо. Обратитесь к администратору сайта, если проблема не устранена.

Я думаю, что это SMTP-сервер, но я не знаю, как это исправить.

saadlulu
источник

Ответы:

12

Попробуйте использовать:

Поддержка аутентификации SMTP

с PHPMailer

Если вы используете Gmail для настройки STMP, выполните следующие действия:

  1. SMTP-сервер: smtp.gmail.com
  2. Порт SMTP: 465
  3. Использовать зашифрованный протокол: использовать SSL
  4. SMTP-аутентификация - ваше имя пользователя и пароль
  5. Оставьте другие параметры по умолчанию
Ивайло Миленков
источник
2

Ошибка:

Невозможно отправить электронное письмо.

исходит от drupal_mail () и считается очень общим и может относиться ко многим различным вещам, таким как неправильная настройка вашего сайта Drupal, конфигурация PHP или служба SMTP вашей операционной системы.

Первое, что нужно сделать, это проверить почтовую систему или журналы Apache (например /var/log/apache2/error.log) для получения более подробной информации об ошибке, поскольку вы можете просто пропуститьsendmail ее самостоятельно (если вы не хотите использовать какую-либо внешнюю службу SMTP).

Если ваш Drupal размещен на вашем выделенном сервере, и это совершенно новая конфигурация, скорее всего, вам не хватает SMTP-сервера (поскольку он указывает localhostпо умолчанию), если только вы не планируете использовать внешний.

Если это ваш локальный компьютер для разработки, либо игнорируйте ошибку (так как она должна нормально работать на выделенном сервере), попробуйте установить MailCatcher , либо вам придется установить SMTP-сервер, как указано выше.

Вот несколько других предложений:

  • при использовании модуля SMTP проверьте, правильно ли вы его настроили (см. файл README ), включая правильные настройки сервера ,
  • проверить значение mail_systemпеременной, если оно переопределено - сбросить его до значения по умолчанию ( drush vdel mail_system),
  • проверьте свою почтовую конфигурацию PHP ( php -i | grep -ie mail -e smtp) и убедитесь, что sendmail_path, SMTPхост и smtp_portправильно,
  • проверьте подключение к вашему SMTP-серверу, используя telnet, например,

    telnet $(php -r 'echo ini_get("SMTP") . " " . ini_get("smtp_port");')

    дважды проверить, не отключен ли хост, разрешен ли DNS или не заблокирован брандмауэром,

  • при использовании postfixпроверьте, httpd_can_sendmailустановлено ли значение1 ( setsebool httpd_can_sendmail 1).

Наконец, проверьте свою электронную почту с помощью следующей команды PHP:

php -r 'mail("drupal@mailinator.com", "Mail test", "It works!");'

и проверьте эту страницу, если электронное письмо было получено.

kenorb
источник
1

Проверьте свой Drupal Watchdog и PHP журналы ошибок. Они могут регистрировать ошибки, которые помогут вам выяснить, в чем проблема. Также проверьте у своего системного администратора, действительны ли используемые вами учетные данные SMTP-сервера (например, адрес, порт, шифрование, пароль и т. Д.).

любитель бариста
источник
1

Если достаточно просто посмотреть, что будет отправлено, модуль maillog очень удобен.

BetaRide
источник
1

Я попал в эту проблему из-за проблемы песочницы Amazon SES. Amazon SES не позволяет отправлять электронную почту на неподтвержденные домены в режиме песочницы. Вам нужно будет запросить доступ к продукции, и проблема будет решена.

Мансур Ахмед
источник
0

Следующие настройки у меня работали на windows.

Если вы используете Gmail для настройки STMP, выполните следующие действия:

SMTP-сервер: smtp.gmail.com

Порт SMTP: 465

Использовать зашифрованный протокол: использовать SSL

SMTP-аутентификация - ваше имя пользователя и пароль gmail

Оставьте другие параметры по умолчанию

Nayana
источник
0

Принятый ответ решил эту проблему, но учтите, что на момент написания этой статьи Gmail блокировал все менее безопасные приложения, потому что ваш сайт drupal не работает с HTTPS.

  1. Затем вы должны разрешить использование менее безопасных приложений в своей учетной записи Gmail.

    • Моя учетная запись> Подключение и безопасность> Разрешить менее безопасные приложения
    • Или перейдите по ссылке в сообщении с предупреждением, полученным от Gmail в тот момент, когда вы пытались подключиться с помощью модуля smtp.
  2. Или получите сертификат SSL для вашего сайта drupal.

The-Vinh VO
источник
0

На тех же общих хостингах Вы не можете отправлять электронную почту без создания электронной почты для веб-мастера. Например если у вас есть домен test.com, вы должны создать адрес электронной почты webmaster@test.com или admin@test.com в вашей Cpanel и установить этот адрес электронной почты в качестве основного электронного адреса веб-сайта. Этот адрес электронной почты будет находиться в поле «От» в вашей почте. Или создайте собственную почту для домена и установите эту почту как основную для сайта. Это зависит от настроек безопасности на виртуальном хостинге.

Андрей Козориз
источник
0

Шаг 1: вы можете настроить SMTP. Шаг 2: открыть командную линию, порт 465 "-A INPUT -p tcp --dport 465 -j ПРИНЯТЬ"

Куан Ли
источник
0

В случае, если это поможет кому-то еще:

Я получил эту ошибку и обнаружил, что это потому, что у меня и Cc и Bcc были установлены на тот же адрес электронной почты в моих заголовках drupal_mail. (это было потому, что я тестировал)

Ангус Уокер
источник