Собираем
информацию
по крупицам
Статьи - Компьютерное

Linux: как перестать удивляться, и начать работать

Настройка ssmtp для работы через gmail.com. Как отправить почту без почтового сервера.
07-04-2011
14:46:36

Многим 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 на самом деле представляет из себя просто консольный SMTP-клиент,  который в stdin принимает отправляемое письмо и умеет соединяться с внешним SMTP-сервером и отправлять ему почтовые сообщения. В этом смысле, ssmtp мало чем отличается от других почтовых клиентов, таких как KMail или Thunderbird.

 

Обратите внимание:

 

Для отправки писем не требуется чтобы постоянно был включен обслуживающий демон (он необходим только для приема писем). Поэтому 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:

 

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"); 
?>

 

Выполняем его в браузере или в консоли сервера, и на ящик anyemail@mail.ru должно прийти письмо с ящика myemail@gmail.com.

 

Если вы всё сделаете правильно, должно заработать с первого раза.

 


К списку "Компьютерное"

Интересное на сайте


Демо на языке C » KSI Demo

Требования: Windows 95/98/XP или Linux Год: 2004   Пробная демка под Linux, сделанная с помощью мультиплатформенной библиотеки SDL. За основу вз...


Qt » MyTetra Share

Официальная страница / Official page     MyTetra Share - это веб-сервис, позволяющий просматривать записи программы MyTetra через интернет ...


Классическая анимация » Прыгающая подушка

Оборудование: Pentium-IV, Wacom Graphire3 CTE-630 Среда: Flash 8 Год: 2005   Первая и, видимо, последняя попытка нарисовать мини-мультфильм по т...

RSS подписка

Подпишитесь на новости сайта по RSS

Поделиться этой страницей


Статистика


Каталог сетка арматурная 200х200х8 hrombur.ru.

Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean

База Аrmagedec

База SorokinRed

База Deadelf79

База Fadk

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик