MyDNS.JP取得については省略する。以下のように名前解決していることが前提。
# host obsa7_sample.mydns.jp obsa7_sample.mydns.jp has address 106.XXX.YYY.ZZZ obsa7_sample.mydns.jp mail is handled by 10 obsa7_sample.mydns.jp.
1.exim4の設定
前準備# パッケージexim4をインストール # aptitude install exim4 # dpkg -l | grep exim4 ii exim4 4.80-7 all metapackage to ease Exim MTA (v4) installation ii exim4-base 4.80-7 armel support files for all Exim MTA (v4) packages ii exim4-config 4.80-7 all configuration for the Exim MTA (v4) ii exim4-daemon-light 4.80-7 armel lightweight Exim MTA (v4) daemon # もしpaniclogがあれば空にしておく。 # ls -l /var/log/exim4/paniclog # cp /dev/null /var/log/exim4/paniclog # ls -l /etc/exim4/update-exim4.conf.conf -rw-r--r-- 1 root root 1027 Dec 24 21:18 /etc/exim4/update-exim4.conf.conf # このupdate-exim4.conf.confは中間設定ワークであるが、 # /var/lib/exim4/config.autogenerated が設定・変更される # update-exim4.conf.confを直接変更したときは、 # /usr/sbin/update-exim4.conf # /etc/init.d/exim4 restart # として、/var/lib/exim4/config.autogeneratedを更新・反映させる。ではexim4-config を行う。以下はテキストベースの設定画面を説明用に部分抽出したもの。
# dpkg-reconfigure exim4-config Package configuration ┤ Mail Server configurationSMTP-AUTH認証用 passwd.client を設定General type of mail configuration: メール設定の一般的なタイプ │ internet site; mail is sent and received directly using SMTP │ X mail sent by smarthost; received via SMTP or fetchmail │ mail sent by smarthost; no local mail │ local delivery only; not on a network │ no configuration at this time System mail name: システムメール名 /etc/mailname │ obsa7.local_sample.or.jp IP-addresses to listen on for incoming SMTP connections: 入力側SMTP接続をリスンするIPアドレス │ 空 Other destinations for which mail is accepted: このSMTPサーバーで扱うドメインを指定します。 │ obsa7_sample.mydns.jp Domains to relay mail for: 外部リレーは認証済みのアカウント以外はできないので空でもよい。 │ smtp.mail.yahoo.co.jp Machines to relay mail for: メールをリレーするマシン │ local_sample.or.jp:*.local_sample.or.jp:*.mail.yahoo.co.jp IP address or host name of the outgoing smarthost: このホストから送出されたメールを操作するマシン (スマートホスト) │ smtp.mail.yahoo.co.jp::587 │ Hide local mail name in outgoing mail? 送出するメールでローカルメール名を隠しますか? Keep number of DNS-queries minimal (Dial-on-Demand)? DNS クエリの数を最小限に留めますか (ダイヤルオンデマンド)? Delivery method for local mail: │ X mbox format in /var/mail/ │ Maildir format in home directory Split configuration into small files? 設定を小さなファイルに分割しますか? Root and postmaster mail recipient: │ root [ ok ] Stopping MTA for restart: exim4_listener. [ ok ] Restarting MTA: exim4. # egrep -v '^#' update-exim4.conf.conf dc_eximconfig_configtype='smarthost' dc_other_hostnames='obsa7_sample.mydns.jp' dc_local_interfaces='' dc_readhost='obs.local_sample.or.jp' dc_relay_domains='smtp.mail.yahoo.co.jp' dc_minimaldns='false' dc_relay_nets='local_sample.or.jp:*.local_sample.or.jp:*.mail.yahoo.co.jp' dc_smarthost='smtp.mail.yahoo.co.jp::587' CFILEMODE='644' dc_use_split_config='true' dc_hide_mailname='false' dc_mailname_in_oh='true' dc_localdelivery='mail_spool'
# egrep -v '^#' /etc/exim4/passwd.client smtp.mail.yahoo.co.jp:Yahoo_JAPAN_MAIL@yahoo.co.jp:"Yahoo! JAPAN パスワード" # chgrp Debian-exim passwd.client # ls -l /etc/exim4/passwd.client -rw-r----- 1 root Debian-exim 330 Dec 31 09:42 /etc/exim4/passwd.clientpasswd.clientへのIDパスワードは、
http://info.mail.yahoo.co.jp/options/imapprofile/
Yahoo!JAPANにログイン後このページを見て
smtp.mail.yahoo.co.jp:メールアドレス:パスワード の行を設定する。
Yahoo_JAPAN_MAIL@yahoo.co.jp部分は@yahoo.co.jpを省略しても通ったようだ。
サーバー設定 受信メール(IMAP)サーバー imap.mail.yahoo.co.jp 受信メール(IMAP)通信方法 SSL 受信メール(IMAP)ポート番号 993 送信メール(SMTP)サーバー smtp.mail.yahoo.co.jp 送信メール(SMTP)認証方式 SMTP_AUTH 送信メール(SMTP)通信方法 SSL 送信メール(SMTP)ポート番号 465 アカウント名/ログイン名 Yahoo_JAPAN_ID ... "Yahoo! JAPAN ID" メールアドレス Yahoo_JAPAN_MAIL@yahoo.co.jp パスワード Yahoo! JAPAN パスワード証明書の作成
# /usr/share/doc/exim4-base/examples/exim-gencert Country Code (2 letters) [US]:JP State or Province Name (full name) []:MY_FULL_NAME Locality Name (eg, city) []: Organization Name (eg, company; recommended) []: Organizational Unit Name (eg, section) []: Server name (eg. ssl.domain.tld; required!!!) []: Email Address []: [*] Done generating self signed certificates for exim! Refer to the documentation and example configuration files over at /usr/share/doc/exim4-base/ for an idea on how to enable TLS support in your mail transfer agent. root@obsa7:exim4# ls -l exim.crt exim.key -rw-r----- 1 root Debian-exim 652 Dec 30 23:22 exim.crt -rw-r----- 1 root Debian-exim 916 Dec 30 23:22 exim.keySMTP認証の設定
ユーザ認証方式は、「AUTH PLAIN」「AUTH LOGIN」を有効化する。
# diff /etc/exim4/exim4.conf.template.org /etc/exim4/exim4.conf.template 316c316 < --- > MAIN_TLS_ENABLE = USE 1818,1826c1818,1826 < # plain_server: < # driver = plaintext < # public_name = PLAIN < # server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}" < # server_set_id = $auth2 < # server_prompts = : < # .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS < # server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} < # .endif --- > plain_server: > driver = plaintext > public_name = PLAIN > server_condition = "${if crypteq{$auth3}{${extract{1}{:}{${lookup{$auth2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}" > server_set_id = $auth2 > server_prompts = : > .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS > server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} > .endif 1833,1841c1833,1841 < # login_server: < # driver = plaintext < # public_name = LOGIN < # server_prompts = "Username:: : Password::" < # server_condition = "${if crypteq{$auth2}{${extract{1}{:}{${lookup{$auth1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}" < # server_set_id = $auth1 < # .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS < # server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} < # .endif --- > login_server: > driver = plaintext > public_name = LOGIN > server_prompts = "Username:: : Password::" > server_condition = "${if crypteq{$auth2}{${extract{1}{:}{${lookup{$auth1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}" > server_set_id = $auth1 > .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS > server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} > .endif
2.メール送信テスト
<toYahoo.sh> #! /bin/sh set -x export DT="TEST_test `date`" (echo "Subject: $DT"; echo "To: au_user@ezweb.ne.jp";\ echo "From: Yahoo_JAPAN_MAIL@yahoo.co.jp"; echo ""; echo "$DT" ;\ echo "from `hostname`") | \ /usr/sbin/exim4 -v -f Yahoo_JAPAN_MAIL@yahoo.co.jp au_user@ezweb.ne.jp # このスクリプトを実行 obsa7user@obsa7:~% ./toYahoo.sh + date + export DT=TEST_test Tue Dec 31 00:37:01 JST 2013 + /usr/sbin/exim4+ -v -f obsa7_sample_user@yahoo.co.jp au_user@ezweb.ne.jp echo Subject: TEST_test Tue Dec 31 00:37:01 JST 2013 + echo To: au_user@ezweb.ne.jp + echo From: obsa7_sample_user@yahoo.co.jp + echo + echo TEST_test Tue Dec 31 00:37:01 JST 2013 + hostname + echo from obsa7 LOG: MAIN <= obsa7_sample_user@yahoo.co.jp U=obsa7user P=local S=408 obsa7user@obsa7:~% delivering 1Vxetp-0001hN-6O R: smarthost for au_user@ezweb.ne.jp T: remote_smtp_smarthost for au_user@ezweb.ne.jp Transport port=25 replaced by host-specific port=587 Connecting to smtp.mail.yahoo.co.jp [114.111.99.228]:587 ... connected SMTP<< 220 smtp506.mail.kks.yahoo.co.jp ESMTP SMTP>> EHLO obsa7 SMTP<< 250-smtp506.mail.kks.yahoo.co.jp 250-AUTH LOGIN PLAIN XYMCOOKIE 250-PIPELINING 250 8BITMIME SMTP>> AUTH PLAIN **************************** SMTP<< 235 ok, go ahead (#2.0.0) SMTP>> MAIL FROM:もし送信に失敗していたなら、メールがFrozenになるので、AUTH=obsa7user@obsa7.local_sample.or.jp SMTP>> RCPT TO: SMTP>> DATA SMTP<< 250 ok SMTP<< 250 ok SMTP<< 354 go ahead SMTP>> writing message and terminating "." SMTP<< 250 ok 1388417821 qp 62878 SMTP>> QUIT LOG: MAIN => au_user@ezweb.ne.jp R=smarthost T=remote_smtp_smarthost H=smtp.mail.yahoo.co.jp [114.111.99.228] LOG: MAIN Completed % </var/log/exim4/mainlog> 2013-12-31 00:37:01 1Vxetp-0001hN-6O <= Yahoo_JAPAN_MAIL@yahoo.co.jp U=a7user P=local S=408 2013-12-31 00:37:02 1Vxetp-0001hN-6O => au_user@ezweb.ne.jp R=smarthost T=remote_smtp_smarthost H=smtp.mail.yahoo.co.jp [114.111.99.228]
→ 1Vxdpt-0000tm-7W Frozen (delivery error message)
# pushd /var/spool/exim4/input/; rm -i 1* とかして、失敗メールは削除する。
0 件のコメント:
コメントを投稿