Phpmailer и sendmail - PullRequest
       16

Phpmailer и sendmail

0 голосов
/ 22 мая 2019

У меня ошибка при попытке отправить электронное письмо. Я использую последнюю версию phpmailer.

Could not execute: /usr/sbin/sendmail -t -i -f

" object(PHPMailer\PHPMailer\PHPMailer)#42 (75) { ["Priority"]=> NULL ["CharSet"]=> string(5) "utf-8" ["ContentType"]=> string(10) "text/plain" ["Encoding"]=> string(16) "quoted-printable" ["ErrorInfo"]=> string(73) "Could not execute: /usr/sbin/sendmail -t -i -f 

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

Не уверен, но я думаю, что какой-то хостер вставляет ограничение. У вас есть идея изменить это? Использовать SMTP?

Спасибо.

1 Ответ

0 голосов
/ 22 мая 2019

Когда вы используете функцию PHP mail() (которую PHPMailer использует по умолчанию), она открывает оболочку и вызывает двоичный файл sendmail (клиентская программа для отправки сообщений электронной почты из командной строки), принадлежащий вашему локальному почтовому серверу. Если у вас нет локального почтового сервера, он не может работать, и вы получаете сообщение об ошибке. Вы можете получить такую ​​же ошибку, если есть почтовый сервер, но у вас нет разрешения на запуск sendmail.

Вам нужно сделать одно из:

  1. Установка почтового сервера (например, postfix)
  2. Поговорите с локальным сервером через SMTP (который не будет подвержен проблемам с разрешениями в том же mail())
  3. Использовать SMTP для отправки через удаленный почтовый сервер, либо ваш интернет-провайдер или другой сервер, такой как Gmail (если ваш провайдер разрешает исходящий SMTP).
...