По умолчанию в Debian Squeeze установлен MTA Exim4. Настройка осуществляется командой
#dpkg-reconfigure exim4-configвыбираем отправку почты наружу, и отключение локальной почты
General type of mail configuration: mail sent by smarthost; no local mailвводим доменное имя
System mail name: domain.ruоставляем адреса по которым необходимо слушать только локальные. Т.к. почтовый сервер будет использоваться только для писем с локальной машины.
IP-addresses to listen on for incoming SMTP connections: 127.0.0.1 ; ::1убеждаемся что локальный домен не совпадает с доменом ваших почтовых адресов
Other destinations for which mail is accepted: debian.domain.ruВидимое имя домена тоже не трогаем, чтобы письмо с сервера содержали имя сервера.
Visible domain name for local users: debian.domain.ruадрес червера, на который пересылать почту
IP address or host name of the outgoing smarthost: smtp.gmail.com::587т.к. у нас dns всегда доступен, то не урезать dns-запросы
keep number of DNS-queries minimal: NoНе сохранять конфиг в мелкие файлы, а оставить одним файлом
Split configuration into small files? NoЗапускаем
# nano /etc/exim4/passwd.clientи вводим учетную запись GMail от имени которой будет отправляться почта.
*.gmail.com:yourAccountName@domain.ru:y0uRpaSsw0RDубеждаемся в том, что права на файл только у root и exim
# ls -l /etc/exim4/passwd.client -rw-r----- 1 root Debian-exim 239 Sep 24 21:17 /etc/exim4/passwd.clientесли не так, то выполняем
#chown root:Debian-exim /etc/exim4/passwd.client #chmod 640 /etc/exim4/passwd.clientпере-читываем изменения в конфиге
# update-exim4.confпроверяем отправку почты, делаем вызов sendmail с полным debug
#sendmail -d i@sepa.spb.ru test .вводим текст письма, который заканчивается точкой в начале пустой строки. Наше письмо не отправилось:
LOG: MAIN ** root@domain.ru R=smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM:<> SIZE=2402: host gmail-smtp-msa.l.google.com [74.125.43.108]: 530-5.5.1 Authentication Required. Learn more at\n530 5.5.1 http://mail.google.com/support/bin/answer.py?answer=14257Из-за того что при отправке наш адрес smarthost был зарезолвлен в IP, а потом IP через reverse dns lookup в имя хоста gmail-smtp-msa.l.google.com Это имя хоста искалось в /etc/exim4/passwd.client для получения строки авторизации
file lookup required for gmail-smtp-msa.l.google.com in /etc/exim4/passwd.client gmail-smtp-msa.l.google.com in "*.gmail.com"? no (end of list) lookup failedоткрываем /etc/exim4/passwd.client и исправляем/добавляем строку авторизации на
*.google.com:yourAccountName@domain.ru:y0uRpaSsw0RDне забываем сделать
# update-exim4.confи пробуем отправить почту еще раз
root@debian:/home/sepa# sendmail i@sepa.spb.ru test2 . root@debian:/home/sepa# tail /var/log/exim4/mainlog 2011-09-24 21:40:35 1R7WCS-0000sV-Iy Completed 2011-09-24 21:40:36 1R7WDL-0000sg-B6 ** root@domain.ru R=smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM:<> SIZE=2402: host gmail-smtp-msa.l.google.com [74.125.43.108]: 530-5.5.1 Authentication Required. Learn more at\n530 5.5.1 http://mail.google.com/support/bin/answer.py?answer=14257 z7sm14961556bkt.5 2011-09-24 21:40:36 1R7WDL-0000sg-B6 Frozen (delivery error message) 2011-09-24 21:44:15 Start queue run: pid=3393 2011-09-24 21:44:15 1R7WDL-0000sg-B6 Message is frozen 2011-09-24 21:44:15 1R7W1G-0000rd-Rs Message is frozen 2011-09-24 21:44:15 End queue run: pid=3393 2011-09-24 21:54:40 1R7WQv-0000xE-0z <= root@domain.ru U=root P=local S=296 2011-09-24 21:54:44 1R7WQv-0000xE-0z => i@sepa.spb.ru R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [74.125.43.109] X=TLS1.0:RSA_ARCFOUR_SHA1:16 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com" 2011-09-24 21:54:44 1R7WQv-0000xE-0z CompletedНа этот раз письмо отправлено и получено :)

Но исходящий адрес, какой бы вы не указывали, будет заменен гуглом на тот, под логином которого было отправлено письмо. Для целей нотификации это не имеет значения. Для разных служб можно указывать разный FromName. Теперь можно открывать
#crontab -eи добавлять строку в начало
MAILTO=i@sepa.spb.ruДля получения ошибок в заданиях планировщика, и использовать sendmail/mail() в скриптах
No comments:
Post a Comment