FreeBSDから外部にメールを出す
FreeBSDからISPのメールサーバを中継してインターネットにメールを送信します。
まずtelnet ISP 25で接続したところ、ESMTP使ってねとお達しがありました。saslが必要になるのでもういっそのことPostfixも入れてしまいます。
インストール
両方ともportsから入れることができます。PostfixはTSLとSASLのオプションを有効にして構築します。mailer.confを作動させていいか聞かれるのでyと答えておきました。
Would you like to activate Postfix in /etc/mail/mailer.conf [n]? Y
/etc/rc.confでsendmailをNOに、postfixをYESに設定します。
# echo 'sendmail_enable="NO"' >> /etc/rc.conf # echo 'postfix_enable="YES"' >> /etc/rc.conf
一方で、もうsendmailは使わないので再構築時にsendmailが作られないように/etc/make.confに一行継ぎ足しておきます。
# echo 'NO_SENDMAIL= true' >> /etc/maik.conf
SMTP-AUTHの設定
/usr/local/etc/postfix/main.cfに以下を書き加えます。myhostnameやmydomainはISPのメールサーバが名前解決できないとメールが弾かれますのでDDNSでも指定しておきます。
# -- write by @nawolets -- myhostname = なんちゃら.dyndns.org mydomain = なんちゃら.dyndns.org relayhost = [ISPのメールサーバ]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/usr/local/etc/postfix/isp_passwd #smtp_sasl_security_option = noanonymous smtp_sasl_security_option = smtp_sasl_mechanism_filter = plain, login, cram-md5
isp_passwdファイルを用意し、DB化します。
# echo 'ISPのメールサーバ ユーザー名:パスワード' > /usr/local/etc/postfix/isp_passwd # chown root:mail /usr/local/etc/postfix/isp_passwd # chmod 640 /usr/local/etc/postfix/isp_passwd # postmap /usr/local/etc/postfix/isp_passwd # file /usr/local/etc/postfix/isp_passwd.db /usr/local/etc/postfix/isp_passwd.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)