вторник, 8 сентября 2009 г.

Отправка почты через сторонний SMTP сервер

Социальная сеть, развитием которой я занимаюсь, стоит на отдельном выделенном сервере с SUSE в качестве операционки. Те, кто ставили на ней систему, установили в качестве отправителя почты на ней sendmail+postfix. Но делать отдельный почтовый сервер на сервере с социальной сетью не хотелось, поэтому искалось решение отправки почты через уже существующие учетные почтовые записи.
Отправка почты с этого сервера постоянно работала с перебоями - то уведомления уходили, то нет, видимо это было связано с настройками сети, в которой стоит сервер.

В качестве промежуточного решения был поставлен модуль Drupal smtp, который позволяет организовать отправку почтовых сообщений через авторизацию на заданном почтовом сервере.
В окончательном варианте пришлось еще и конфигурировать postfix.

Какие шаги в целом были сделаны: (в качестве учетной записи использовалась учетная запись на gmail).
1. В учетной записи на Gmail в Настройках проставлена "точка" напротив "POP включен". Это позволяет отправлять и получать почту с этого аккаунта не только через GMail в браузере.
2. В настройках smtp модуля были прописаны данные о smtp.gmail.com, порте доступа: 465, данные учетной записи, и отмечено, что соединение должно быть защищенным.
3. На веб-сервере должна быть поддержка соединений по протоколу https.
4. В настройках самого сайта в качестве обратного email должен быть тот же самый адрес, от имени которого идет отправка через smtp.
5. Мне пришлось еще и конфигурировать Postfix. Для этого в файле /etc/postfix/main.cf и /etc/postfix/sasl_passwd были сделаны соотвествующие настройки. Хорошая инструкция как это делать есть вот тут: http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html
6. После перезагрузки postfix все заработало - теперь все сообщения, которые отправляются с учетной записи gmail через smtp сохраняются еще и в самой учетной записи. Почта уходит на все почтовые адреса.

Да здравствует GMail, Drupal и иже с ними ;)