Sendmail


 * http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/sendmail.html
 * postfix - более предпочтительно
 * exim


 * Отправка почты с авторизацией - handbook

Никто из них не умеет pop, надо ставить dovecot или courier-imap. popa3d


 * qpopper - pop3-сервер популярный.

< C{TrustAuthMech}GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN < O AuthMechanisms=GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN < R$*                  $#error $@ 5.7.1 $: "550 Relaying denied. Proper authentication required." cd /etc/mail make install-submit-cf создает yally.nonename.com.submit.cf и yally.nonename.com.submit.mc

Для получения почты удаленно по POP или IMAP потребуется установить отдельно ПО. grep -v # /tmp/torrents/etc/inetd.conf pop3 stream tcp nowait root /usr/local/sbin/popper popper

По умолчанию запускается sendmail (вернее, его компоненты, за счет которых работает отправка почты с хоста. Например, из скриптов.

grep sendmail /etc/defaults/rc.conf mta_start_script="/etc/rc.sendmail" sendmail_enable="NO"   # Run the sendmail inbound daemon (YES/NO). sendmail_pidfile="/var/run/sendmail.pid"       # sendmail pid file sendmail_procname="/usr/sbin/sendmail"         # sendmail process name sendmail_flags="-L sm-mta -bd -q30m" # Flags to sendmail (as a server) sendmail_submit_enable="YES"   # Start a localhost-only MTA for mail submission sendmail_submit_flags="-L sm-mta -bd -q30m -ODaemonPortOptions=Addr=localhost" sendmail_outbound_enable="YES" # Dequeue stuck mail (YES/NO). sendmail_outbound_flags="-L sm-queue -q30m" # Flags to sendmail (outbound only) sendmail_msp_queue_enable="YES" # Dequeue stuck clientmqueue mail (YES/NO). sendmail_msp_queue_flags="-L sm-msp-queue -Ac -q30m" # Flags for sendmail_msp_queue daemon. sendmail_rebuild_aliases="NO"  # Run newaliases if necessary (YES/NO).
 * 1) Settings for /etc/rc.sendmail and /etc/rc.d/sendmail:

Отказ
/etc/rc.d/sendmail stop Cannot 'stop' sendmail. Set sendmail_enable to YES in /etc/rc.conf or use 'onestop' instead of 'stop'. Stopping sendmail_submit. Stopping sendmail_clientmqueue. Waiting for PIDS: 911.

Просто отказываться нельзя - перестанет работать отправка, надо заменять на другой MTA. Также перестанет работать отправка отчетов (/etc/periodic.conf daily_output="root" )

По умолчанию он и так выключен sendmail_enable="NO"	# Run the sendmail inbound daemon (YES/NO).

Но есть другие knobs - их и выставить в OFF
 * sendmail_submit_enable="YES"	# Start a localhost-only MTA for mail submission
 * sendmail_outbound_enable="YES"	# Dequeue stuck mail (YES/NO).
 * sendmail_msp_queue_enable="YES"	# Dequeue stuck clientmqueue mail (YES/NO).

/etc/rc.d/sendmail stop Stopping sendmail.

Stopping sendmail_clientmqueue.

less /etc/mail/mailer.conf  sendmail       /usr/libexec/sendmail/sendmail send-mail      /usr/libexec/sendmail/sendmail mailq          /usr/libexec/sendmail/sendmail newaliases     /usr/libexec/sendmail/sendmail hoststat       /usr/libexec/sendmail/sendmail purgestat      /usr/libexec/sendmail/sendmail 

Отправка через telnet
telnet 192.168.0.252 25 helo leksey.tushinec.ru mail from: noreply@yally.nonename.com rcpt to: leksey@ya.ru data текст сообщения . __пустая строка__ и Enter quit

Заголовок письма Received: from leksey.tushinec.ru (yally.nonename.com [192.168.0.252]) by yally.nonename.com (8.14.3/8.14.3) with SMTP id o47MocV7011364 for leksey@ya.ru; Fri, 7 May 2010 22:57:30 GMT (envelope-from noreply@yally.nonename.com) Date: Fri, 7 May 2010 22:50:38 GMT From: noreply@yally.nonename.com

less /var/log/maillog May 7 22:57:40 yally sm-mta[11364]: o47MocV7011364: from=noreply@yally.nonename.com, size=12, class=0, nrcpts=1, msgid=<201005072257.o47MocV7011364@yally.nonename.com>, proto=SMTP, daemon=Daemon0, relay=yally.nonename.com [192.168.0.252] May 7 22:57:40 yally sm-mta[11444]: o47MocV7011364: to=leksey@ya.ru, delay=00:00:10, xdelay=00:00:00, mailer=esmtp, pri=30012, relay=mx.yandex.ru. [213.180.204.89], dsn=2.0.0, stat=Sent (Ok: queued on mxfront49.mail.yandex.net as 96ABF25D8063)

Настройка sendmail
sendmail -d0.1 -bv root Version 8.14.3 Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS PIPELINING SCANF STARTTLS TCPWRAPPERS USERDB XDEBUG
 * Конфигурационный файлы расположены в /etc/mail
 * Почтовые ящики /var/mail/

=
SYSTEM IDENTITY (after readcf) ============ (short domain name) $w = yally (canonical domain name) $j = yally.nonename.com (subdomain name) $m = nonename.com (node name) $k = yally.nonename.com

=
===========================================

hash map "Alias0": missing map file /etc/mail/aliases.db: No such file or directory root... deliverable: mailer local, user root

Правки вносятся в файлы с расширением MC (Master Config), на основе которых потом вызовом отдельной команды генерится CF

Соответственно, sendmail.cf править напрямую не следует. его исходным файлом является freebsd.mc

Команды задаются в формате макроязыка m4

dnl (delete through newline) если стоит в начале строки, то строка закомментирована

создание файлов make cf cp freebsd.mc yally.nonename.com.mc /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/  /usr/share/sendmail/cf/m4/cf.m4 yally.nonename.com.mc > yally.nonename.com.cf cp freebsd.submit.mc yally.nonename.com.submit.mc /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 yally.nonename.com.submit.mc > yally.nonename.com.submit.cf

Для создания aliases.db make aliases /usr/sbin/sendmail -bi -OAliasFile=/etc/mail/aliases /etc/mail/aliases: 27 aliases, longest 10 bytes, 275 bytes total chmod 0640 /etc/mail/aliases.db

По умолчанию этот файл почему-то не создается, а в лог-файлах появляются ошибки (видимо, каждые 30 минит при запуске очистки спула писем) May 9 03:01:43 yally sm-mta[29786]: o4931hfd029772: SYSERR(root): hash map "Alias0": missing map file /etc/mail/aliases.db: No such file or directory

Для изменения (алтернатива make?) /usr/bin/newaliases

access.sample для управления списком хостов, которым разрешена отправка почты через данную копию sendmail

Для создания access.db cd /etc/mail cp access.sample access Для генерации и перегенерации после правки access выполнить make maps /usr/sbin/makemap hash access.db < access chmod 0640 access.db

Перечитать правила из access.db после изменения. make restart Restarting: sendmail sendmail-clientmqueue.

Open relay
По умолчанию пересылка (отправка) почты запрещена со всех хостов, что не являются локальными или указаны в /etc/mail/local-host-names (по умолчанию его нет). При попытке отправить отображается следующее сообщение "550 5.7.1 leksey@ya.ru... Relaying denied. IP name lookup failed [192.168.0.254]"

Пересылкой не считается отправка почты локальному пользователю. Пересылка это попытка заставить отсылать почту на сторонние адреса.

Для проверки, является ли хост открытым релеем можно либо попытаться врчную отправить через него почту, используя telnet или почтовый клиент, либо воспользоваться сервисом, гуглимого по запросу open relay tester http://www.abuse.net/relay.html

Перечислить все домены в файле local-host-names, которые обслуживаются sendmail. По умолчанию файла нет. Смысл в нем есть, когда обслуживается больше одного домена, либо он отличается от hostname сервера? Чтобы применить изменения. make restart

/etc/rc.d/sendmail stop Cannot 'stop' sendmail. Set sendmail_enable to YES in /etc/rc.conf or use 'onestop' instead of 'stop'. Stopping sendmail_submit. Stopping sendmail_clientmqueue.

make install-submit-cf

Попытка отправить почту несуществующему пользователю

550 5.1.1 info@yally.nonename.com... User unknown

Настройка домена
mx-записиь в интерфейсе caravan - [yally] [10] [yally]

yally.nonename.com. 86400  IN      MX      10 yally.nonename.com.

Открывает другие порты
Вместе с 25 открывает 587. Который предназначен для *initial* submission from a MUA to a MTA. Т.е. отправки почты клиентом.

But there is another SMTP submission port, port 587, which almost all mail server supports. In fact, according to the relevant standard, port 587 is the preferred port for mail submission.