Настройка sendmail для отправки почты через Gmail
На днях понадобилось настроить отправку писем при помощи PHP, раньше необходимости в этом не было, так что и настроено не было тоже. Как известно, PHP-функция
P.S. Это перевод вот этого поста с дополнениями. Также существует более свежая его версия здесь. Там добавлена конфигурация SSL-сертификатов для Gmail. Я этого делать не стал, потому что всё работает и так. P.P.S. На самом деле работает не совсем всё, что должно: не получается писать произвольный email в заголовке письма
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: 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. Проверка
Используйте примерно такой код:
Если письмо не отправилось, смотрите лог sendmail в /var/log/mail.log P.S. Это перевод вот этого поста с дополнениями. Также существует более свежая его версия здесь. Там добавлена конфигурация SSL-сертификатов для Gmail. Я этого делать не стал, потому что всё работает и так. P.P.S. На самом деле работает не совсем всё, что должно: не получается писать произвольный email в заголовке письма
From:
Но, скорее всего, это проблема конкретно моего сервера, если я это решу, текст будет дополнен.
Комментарии
Отправить комментарий