отсюда
Поскольку MTA существуют самые разные и многим нравится только какой-то определенный, я попытаюсь описать настройку нескольких популярных MTA.
1. Sendmail
Классический Sendmail многим не нравится из-за сложной настройки, но все-таки это очень мощный и достаточно распространенный MTA. Итак (все действия будут выполнятся пользователем root),
# apt-get install sendmail
Добавим несколько строк в /etc/mail/sendmail.mc для того, чтобы Sendmail отсылал почту через gmail (добавлять эти строчки нужно до параметров MAILER, иначе потом будет ошибка при сборке конфигов).
define(`SMART_HOST',`smtp.gmail.com')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`RELAY_MAILER',`esmtp')dnl
define(`RELAY_MAILER_ARGS', `TPC $h 587')dnl
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl
Теперь создадим папку /etc/mail/auth, а в ней - файл client-info, в котором будут храниться наши логин и пароль для my.name@gmail.com.
# mkdir /etc/mail/auth
# touch /etc/mail/client-info
Добавим в client-info наши параметры авторизации (my.name заменим на свой логин на gmail, а password - на пароль).
AuthInfo:smtp.gmail.com "U:root" "I:my.name" "P:password" "M:PLAIN"
AuthInfo:smtp.gmail.com:587 "U:root" "I:my.name" "P:password" "M:PLAIN"
Для пущей безопасности можно сделать этот файл (да и папку тоже) доступными только для пользователя root
# chmod 600 /etc/mail/auth/client-info
# chmod 700 /etc/mail/auth
Преобразуем этот файл в нужный формат
# makemap -r hash /etc/mail/auth/client-info.db < /etc/mail/auth/client-info
Теперь выполним одно специфичное для Sendmail действие - пересборку конфигурационных файлов
# cd /etc/mail
# make
И наконец перезапускаем MTA для применения изменений
# /etc/init.d/sendmail reload
Готово. Можно отправлять почту.
2. Postfix
Postfix обладает всей мощью Sendmail, будучи полностью с ним совместимым, но при этом он гораздо проще в конфигурации. Кроме того, это мой любимый MTA, так что я не мог обойтись без описания его настройки. Итак (все действия производятся от имени root),
# apt-get install postfix
Скопируем главный настроечный файл postfix в нужное место (почему-то в Kubuntu он не устанавливается по-умолчанию)
# cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf
В конец этого файла добавим несколько строк, чтобы настроить доставку почты через gmail.
relayhost = smtp.gmail.com:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail_passwd
smtp_sasl_security_options = noanonymous
Теперь создадим указанный нами файл авторизации
# touch /etc/postfix/gmail_passwd
и добавим в него наши логин и пароль на gmail (my.name заменяем на логин, а password - на пароль).
smtp.gmail.com:587 my.name@gmail.com:password
Преобразуем этот файл в нужный формат (BDB) и для пущей безопасности защитим его от доступа простых смертных.
# postmap /etc/postfix/gmail_passwd
# chown root:postfix /etc/postfix/gmail_passwd*
# chmod 0640 /etc/postfix/gmail_passwd*
Перезапускаем Postfix для применения изменений.
# /etc/init.d/postfix restart
Настройка закончена. MTA готов к отправке почты через gmail.
3. Exim
Exim - один из самых популярных (и мощных) MTA. Именно его мне советовала Kubuntu при установке Mutt. Кроме того, exim уже упоминался в этом блоге, так что описание его настройки вполне закономерно. Итак (всё делаем с правами root),
# apt-get install exim4
Отредактируем следующие параметры в файле /etc/exim4/update-exim4.conf.conf, чтобы отправлять почту через gmail
dc_eximconfig_configtype='smarthost'
dc_smarthost='smtp.gmail.com::587'
В файл авторизации /etc/exim4/passwd.client добавим следующие строки (подставляем свои логин и пароль вместо my.name и password соответственно)
gmail-smtp.l.google.com:my.name@gmail.com:password
*.google.com:my.name@gmail.com:password
smtp.gmail.com:my.name@gmail.com:password
Выполним следующую команду для применения новых настроек
# update-exim4.conf
На этом настройка завершена. Exim будет отправлять почту через gmail.
Подписаться на:
Комментарии к сообщению (Atom)
3 комментария:
спасибо выручило
Подробнее для exim:
1. Прописываем параметры аутентификации в /etc/exim4/passwd.client
smtp.gmail.com:myaccount@gmail.com:mypassword
gmail-smtp-msa.l.google.com:myaccount@gmail.com: mypassword
## Второй сервер нужен т.к. smtp.gmail.com ссылается на него
2. Запускаем в терминале
#dpkg-reconfigure exim4-config
И по шагам указываем следующую информацию
Общий тип почтовой конфигурации:
- отправка почты через smarthost; приём по SMTP или через fetchmail
Почтовое имя системы:
- Оставляем пустую строку
IP-адреса, с которых следует ожидать входящие соединения SMTP:
- 127.0.0.1
Другие места назначения, для которых должна приниматься почта:
- Оставляем пустую строку
Машины, для которых доступна релейная передача почты:
- Оставляем пустую строку
IP-адрес или имя хоста являющегося исходящим smarthost:
- smtp.gmail.com::587
Скрывать локальное почтовое имя в исходящей почте?
- Нет
Сокращать количество DNS-запросов до минимума (дозвон по требованию)?
- Нет
Метод доставки локальной почты:
- mbox формат в /var/mail/
Разделить конфигурацию на маленькие файлы?
- Да
3. Пробуем отправить почту
Если возникнут проблемы, то хорошо помогут логи в файле /var/log/exim4/mainlog. Кстати, для его мониторинга хорошо поможет пакет eximon4, в Ubuntu его можно установить через Synaptic.
Для проверки отправки письма можно вызывать скрипт на php:
$res = mail('toaddress@yandex.ru', 'Тема сообщения', 'Текст сообщения');
print_r($res);
Настроил через Exim.
Единственная проблема: Google, с…обака, переписывает заголовки From, Return-Path и т.п. на оригинальный адрес отправителя.
Ни переписывание хеадеров при отправке письма, ни даже параметр “-f{$from}” не помогают.
При этом Exim обрабатывает правильно:
2011-02-02 10:24:02 1PkX4M-0001Nk-FJ < = from@bk.ru U=www-data P=local S=661
2011-02-02 10:24:03 1PkX4M-0001Nk-FJ = > to@domain.ru R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [209.85.225.109] X=TLS1...
2011-02-02 10:24:03 1PkX4M-0001Nk-FJ Completed
Но почта на ящик приходит не от from@bk.ru, а от того ящика gmail, на который настроен Exim (типа vasya.pupkin@gmail.com).
Даже не знаю, как с этим бороться. Кто что может посоветовать?
Отправить комментарий