Настройка ssmtp для работы через gmail.com.

Posted on 09/16/2010 by   |   Filed under templates, internet    Comments 11

 Как отправить почту без почтового сервера.

Многим web-мастерам необходимо уметь настраивать почтовую службу на своем хосте. Обычно, в качестве почтовой службы используется сервер sendmail. Однако, зачастую, из всех возможностей sendmail используется только отправка почты. Если ресурсы на сервере ограничены, и не хочется выделять память для того чтобы процесс sendmail постоянно висел в системе, то в систему можно установить программу ssmtp. Программа ssmtp отправляет почту точно так же как sendmail, но при этом не висит постоянно в памяти, а автоматически запускается каждый раз, когда какой-нибудь программе необходимо отправить письмо.

В этой статье рассказывается, как настроить программу ssmtp для работы через сервера Google.

Как это работает

Исторически сложилось так, что в *NIX-мире для передачи почты первым был написан сервер sendmail. Этот сервер долгое время был стандартом де-факто. Сервер sendmail представляет из себя комбаин, который выполняет множество функций и использует для приема и передачи почты протокол SMTP.

Постепенно была сформирована концепция MTA - то есть, концепция Mail Transfer Agent. MTA - это элемент системы передачи почты, который занимается только процессом передачи почтовых сообщений. Программы, используемые для передачи почтовых сообщений, являются MTA-программами.

Помимо sendmail, в *NIX системах появились и другие MTA-программы. Например, postfix, EXIM и, что для нас важно, ssmtp. Однако исторически в системе Linux принято, что программа для передачи почтовых сообщений должна быть именно sendmail. Поэтому, когда устанавливается любая из MTA-программ, она создает файлы линков /usr/sbin/sendmail и /usr/lib/sendmail, которые указывают на нужную программу. В нашем случае, эти файлы будут указывать на программу ssmtp.

cd /usr/sbin
ls -l | grep sendmail
lrwxrwxrwx 1 root root 5 2011-04-07 03:09 sendmail -> ssmtp

Обратите внимание: Для отправки писем не требуется чтобы постоянно был включен обслуживающий демон (он необходим только для приема писем). Поэтому ssmtp - это просто программа.

В Linux при отправке писем любой клиент (например, интерпретатор PHP) по-умолчанию выполняет программу /usr/sbin/sendmail, передавая через стандартный поток ввода заголовки и текст письма. В нашем случае это линк, и он указывет на программу ssmtp. Поэтому отправка почты будет совершаться через ssmtp.

Как настроить

Итак, нужно иметь почтовый ящик на GMail. Все письма, рассылаемые через ssmtp будут приходить адресату так, как будто они были отправлены с ящика Google. Предположим, что у нас есть ящик myemail@gmail.com. Будем проводить настройки с использованием этого почтового ящика.

Устанавливаем программу ssmtp. В Debian для этой цели можно использовать команду:

sudo apt-get  install ssmtp

После устновки нужно настроить файл /etc/ssmtp/ssmtp.conf. Вот как он должен выглядеть, чтобы ssmtp работал через GMail:

sudo nano /etc/ssmtp/ssmtp.conf

 

root=myemail@gmail.com
mailhub=smtp.gmail.com:465
AuthUser=myemail
AuthPass=пароль_к_почтовому_ящику
rewriteDomain=gmail.com
hostname=gmail.com
FromLineOverride=YES
UseTLS=YES

Далее нужно настроить файл /etc/ssmtp/revaliases. В нем следует прописать тех пользователей, от которых возможна отправка почты. Обычно прописывается пользователь root и пользователь www-data чтобы веб-сервер имел возможность отправлять почту. Содержимое этого файла должно быть следующим:

sudo nano /etc/ssmtp/revaliases

 

root:myemail@gmail.com:smtp.gmail.com:465
root:myemail@gmail.com:smtp.gmail.com:465
www-data:myemail@gmail.com:smtp.gmail.com:465

На этом настройку можно считать законченой.

Если пользоваться программой mail то надо поставить mailutils

sudo apt-get install mailutils

Теперь проверим

echo 'Наше тест-сообщения' | sendmail -v -s 'Наш заголовак письма' проверочный@адрес
[<-] 220 mx.google.com ESMTP x54sm9783319eeh.17 

[->] EHLO smtp.gmail.com
[<-] 250 ENHANCEDSTATUSCODES
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO smtp.gmail.com
[<-] 250 ENHANCEDSTATUSCODES
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] bGludXhqb3VybmFsLnN1QGdtYWlsLmNvbQ==
[<-] 334 UGFzc3dvcmQ6
[<-] 235 2.7.0 Accepted
[->] MAIL FROM:
[<-] 250 2.1.0 OK x54sm9783319eeh.17
[->] RCPT TO:<проверочный@адрес>
[<-] 250 2.1.5 OK x54sm9783319eeh.17
[->] DATA
[<-] 354 Go ahead x54sm9783319eeh.17
[->] Received: by smtp.gmail.com (sSMTP sendmail emulation); Tue, 28 Dec 2010 20:35:30 +0200
[->] From: “root”
[->] Date: Tue, 28 Dec 2010 20:35:30 +0200
[->] To: проверочный@адрес
[->] Subject: Наш заголовак письма
[->] User-Agent: Heirloom mailx 12.4pre 6/29/08
[->] MIME-Version: 1.0
[->] Content-Type: text/plain; charset=us-ascii
[->] Content-Transfer-Encoding: 7bit
[->]
[->] Наше тест-сообщения
[->] .
[<-] 250 2.0.0 OK 1293549764 x54sm9783319eeh.17
[->] QUIT
[<-] 221 2.0.0 closing connection x54sm9783319eeh.17

Источники:

Настройка ssmtp для работы через gmail.com. Как отправить почту без почтового сервера. ( Статьи - Компьютерное : Linux: как перестать удивляться, и начать работать ):

SSMTP – простейшая замена sendmail для отправки почты / Заметки / Украинский сайт посвященный использованию операционной системы Linux:

Image Gallery

Services Overview

Curabitur sed urna id nunc pulvinar semper. Nunc sit amet tortor sit amet lacus sagittis posuere cursus vitae nunc.Etiam venenatis, turpis at eleifend porta, nisl nulla bibendum justo.

Contact Us

Nullam quam lorem, tristique non vestibulum nec, consectetur in risus. Aliquam a quam vel leo gravida gravida eu porttitor dui.

Address: 1458 TemplateAccess, USA
Telephone: +123-1234-5678
FAX: +458-4578
Others: +301 - 0125 - 01258
E-mail: mail@yoursitename.com