Поскольку я исследовал эту проблему и наткнулся на этот пост, сторонняя библиотека php не была для меня вариантом.
Как мы знаем, php по умолчанию использует команду sendmail
сервера
Параметр sendmail_path
в php.ini
можно изменить, чтобы переопределить настройку для вашей собственной команды с ее собственными аргументами и т. Д.
Например: sendmail_path = /usr/bin/unix2dos | /usr/bin/dos2unix | /usr/sbin/sendmail -t -i
SSMTP позволит вам направлять исходящие электронные письма на почтовый хост с вашего веб / php сервера. https://wiki.archlinux.org/index.php/SSMTP
apt-get install ssmtp
Затем вы можете использовать sendmail_path = /usr/sbin/ssmtp -t
, чтобы сказать php, что нужно использовать ssmtp вместо sendmail. Обязательно перезапустите веб-сервер после внесения изменений в php.ini
Также убедитесь, что вы настроили ssmtp и проверили записи SPF, DKIM, DMARC, прежде чем вносить изменения в sendmail_path
в php.ini
Например, почтовый сервер gmail. /etc/ssmtp/ssmtp.conf
# The user that gets all the mails (UID < 1000, usually the admin)
root=postmaster@yourdomain.com
# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also http://mail.google.com/support/bin/answer.py?answer=78799
mailhub=smtp.gmail.com:587
# The address where the mail appears to come from for user authentication.
rewriteDomain=yourdomain.com
# The full hostname
hostname=FQDN.yourdomain.com
# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes
# Username/Password
AuthUser=postmaster@yourdomain.com
AuthPass=postmaster-password
# Email 'From header's can override the default domain?
FromLineOverride=yes
См. Вопрос обмена стеками
https://unix.stackexchange.com/questions/36982/can-i-set-up-system-mail-to-use-an-external-smtp-server
Подробнее об этом.
При использовании Google каждый адрес электронной почты From:
должен быть настроен на отправляющей учетной записи как параметр «Ваша учетная запись» в разделе учетных записей. В противном случае Google перепишет заголовки с помощью x-google-original-from
и в качестве отправляющей учетной записи будет указан From.