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.key
SMTP認証の設定ユーザ認証方式は、「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: 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]
もし送信に失敗していたなら、メールがFrozenになるので、→ 1Vxdpt-0000tm-7W Frozen (delivery error message)
# pushd /var/spool/exim4/input/; rm -i 1* とかして、失敗メールは削除する。

0 件のコメント:
コメントを投稿