Настройка ssmtp для работы через gmail.com. Как отправить почту без почтового сервера.

   Большинство веб-мастеров обязаны уметь настраивать почтовую службу, на каком либо хосте. Они, зачастуюв качествепочтовой службы эксплуатируют сервер sendmail. Но из всех его возможностей, веб мастера затрагивают только отправку сообщений. Если у вас на сервере ограниченные ресурсы, и не хочется их тратить для того чтобы sendmail все время висе в системе, то можно установить в систему программу ssmtp. Данная программа позволяет отправить почту точь в точь, как и sendmail, её преимуществом перед sendmail является то, что она совсем не висит в системе, а запускается автоматически только тогда, когда будет необходимо отправить сообщение

   В этой статье будет рассказываться про то, как можно настроить ssmtpчтобы она работала через сервера Google
 
 
   Как это работает
 
   Дела обстоят так, что в *NIX-мире самой первой программой для передачи почты был sendmail. Данный сервер был очень долгое время стандартом де-факто. Sendmail– это универсальный комбаин, с помощью которого можно выполнить большое количество функций. Он использует для передачи и приёма почты протокол SMTP

   Затем, постепенно сформировалась концепция MTA (MailTransferAgent). MTA – это специальный элемент для передачи почты, он используется исключительно только для процессов отправки почтовых сообщений. Все программы, которые используют для передачи почтовых сообщений, называют MTA– программами.
   Кроме sendmail, в системах *NIX начали появляться и многие другие MTA программы. К ним можно отнести EXIM,postfix, и самая важная для нас ssmtp. Но в Linux системе уж давно принято то, что для передачи почтовых сообщений должна использоваться именно sendmail. Из-за этого, когда в Linux систему ставится любая MTA программа, то она начинает создавать файлы линков /usr/sbin/sendmail и/usr/lib/sendmail, они указывают путь до нужной программы. В нижеприведённом примере такие файлы указывают на программу ssmtp.
 
$ cd /usr/sbin
$ ls -l | grepsendmail
lrwxrwxrwx 1 root root 5 2011-04-07 03:09 sendmail ->ssmtp
 
    На самом деле, программа ssmtp это просто консольный клиент SMTP, в stdin он может принимать отправленное письмо, а также может соединиться с внешним сервером SMTP и передавать ему почтовые сообщения. Следуя этому, можно понять, что smtp почти не имеет отличий по сравнению с другими почтовыми клиентами, например KMail и Thunderbird.

   Важно обратить внимание:
Чтобы отправить письмо совсем не обязательно включать на постоянную основу обслуживающий демон (он используется для приёма писем). Следовательно,ssmtpэто простая программа
 
   В Linux системах во время отправки писем любой клиент (допустим интерпретатор PHP) по умолчанию начинает выполнять программу  /usr/sbin/sendmail, отправляя через обычный поток текст письма и заголовки. В нашем случае это просто линк, и он указывает путь на программу ssmtp. Из-за этого почта будет отправляться с помощью smtp
 
 
   Как его настроить.

 
   Итак, для начала нужно завести почтовый ящик Gmail. Письма, которые будут рассылаться через ssmtp, начнут приходить адресату от имени ящика Googlemail.
Допустим, у нас уже имеется почтовый ящик ssmtpmail@gmail.com. Начнем настраивать клиент при помощи данного ящика
Для начала установите программу ssmtp. Если у вас Debian то для этого используется команда
 
$ sudoapt-get  install smtp
 
   После того, как мы установили её, необходимо настроить файл /etc/ssmtp/ssmtp.conf. Он должен выглядеть так, для того чтобы ssmtp работал через GoogleMail
 
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, для того чтобы сервер мог отправлять почту. В файл нужно вписать данные строки:
 
root:myemail@gmail.com:smtp.gmail.com:465
www-data:myemail@gmail.com:smtp.gmail.com:465
 
   И все, можете считать все манипуляции законченными.
   Для того чтобы проверить программу, можно попробовать отправить сообщение при помощи PHP. Создадим скрипт под названием send_test_email.php.
Вписываем в него следующее:
 
<?php 
mail("anyemail@mail.ru", "Заработало!", "Это проверка \n ssmtp"); 
?>
 Скрипт можно выполнить при помощи браузера .