Mastodon

Shumaher’s_Blog@AlexZ.me

— yet another stupid personal weblog

Настройка sendmail для отправки почты через Gmail

На днях понадобилось настроить отправку писем при помощи PHP, раньше необходимости в этом не было, так что и настроено не было тоже.
Как известно, PHP-функция mail() сама не отправляет почту, а лишь передаёт составленное письмо программе MTA (агенту передачи почты), и так как собственного SMTP-сервера у меня нет, для отправки писем я пользуюсь Gmail. В качестве MTA решил использовать стандартный sendmail.
О том, как всё это настроить и связать вместе — далее.

Для начала убедитесь, что у вас установлен именно sendmail (а не exim4 или другой MTA), сделать это можно так:

ls -la `which sendmail`
lrwxrwxrwx 1 root root 26 2011-01-17 19:58 /usr/sbin/sendmail -> /etc/alternatives/sendmail

Потому что в свежих убунтах вроде как устанавливается именно exim4. По крайней мере у меня оказался он.


Настройка sendmail

Правка /etc/mail/sendmail.mc
добавьте следующие строки в конец файла, но ДО группы опций MAILER*:

define(`SMART_HOST',`smtp.gmail.com:465')
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl

обратите внимание на разные кавычки вокруг значений — это не ошибка!

создайте файл /etc/mail/auth/client-info:

1
AuthInfo:smtp.gmail.com "U:nobody" "I:USERNAME@gmail.com" "P:PASSWORD"

Права и применение конфигов:

chmod 600 /etc/mail/auth/*
sendmailconfig


Настройка PHP

Посмотрите вывод phpinfo(), должна быть директива
sendmail_path = /usr/sbin/sendmail -t -i
если это не так, исправьте в php.ini в секции [mail function], и не забудьте перезапустить Apache.


Проверка

Используйте примерно такой код:

1
2
3
<?php
mail('mailto@address.com', 'Subject', 'Text');
?>

Если письмо не отправилось, смотрите лог sendmail в /var/log/mail.log





P.S. Это перевод вот этого поста с дополнениями.
Также существует более свежая его версия здесь. Там добавлена конфигурация SSL-сертификатов для Gmail. Я этого делать не стал, потому что всё работает и так.

P.P.S. На самом деле работает не совсем всё, что должно: не получается писать произвольный email в заголовке письма From:
Но, скорее всего, это проблема конкретно моего сервера, если я это решу, текст будет дополнен.

VN:F [1.9.17_1161]
Rating: 0.0/5 (0 votes cast)
Оставьте свой комментарий




OpenID WordPress.com Yahoo

Это не спам.