По умолчанию в 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:[email protected]: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 [email protected] test .вводим текст письма, который заканчивается точкой в начале пустой строки. Наше письмо не отправилось:
LOG: MAIN ** [email protected] 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:[email protected]:y0uRpaSsw0RDне забываем сделать
# update-exim4.confи пробуем отправить почту еще раз
root@debian:/home/sepa# sendmail [email protected] 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 ** [email protected] 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 <= [email protected] U=root P=local S=296 2011-09-24 21:54:44 1R7WQv-0000xE-0z => [email protected] 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и добавлять строку в начало
[email protected]Для получения ошибок в заданиях планировщика, и использовать sendmail/mail() в скриптах
No comments:
Post a Comment