最近インストールしたDebianでは 標準のMTAにEximを採用しています。ここでは Debian を例に Exim の設定を紹介します。
メール関連のプログラムは三つの種類に分けられます。
設定のポイントは以下のものです。
debian@sasanishiki:~$ dig sasanishiki.kome MX ;; QUESTION SECTION: ; sasanishiki.kome. IN MX ;; ANSWER SECTION: sasanishiki.kome. 86400 IN MX 10 sasanishiki.kome. ;; AUTHORITY SECTION: kome. 86400 IN NS sasanishiki.kome. ;; ADDITIONAL SECTION: sasanishiki.kome. 86400 IN A 192.168.0.5 ;; Query time: 6 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sat Sep 27 15:10:27 2003 ;; MSG SIZE rcvd: 78
このように dig を使って MXレコードの名前がちゃんと引けるかテストをしておきます。
debian@sasanishiki:~$ /usr/sbin/exim -bV Exim version 3.35 #1 built 04-Mar-2002 23:05:40 Copyright (c) University of Cambridge 2001 2003-06-05 20:03:23 Failed to open configuration file /etc/exim/exim.conf
設定ファイルの場所は /etc/exim/exim.conf であることがわかります。 http://www.exim.org によるとカレントバージョンは 4.24 になっています。3 はもうサポートされないとの ことです。4 と 3 では設定が違うので注意してください。exim に関する文書は /usr/share/doc/exim/ 以下にあります。spec.txt.gz が参考になります。
debian@sasanishiki:~$ su Password: sasanishiki:/home/debian# cp /usr/share/doc/exim/example.conf.gz /etc/exim sasanishiki:/home/debian# cd /etc/exim sasanishiki:/etc/exim# cp example.conf.gz exim.conf.gz sasanishiki:/etc/exim# gunzip exim.conf.gz sasanishiki:/etc/exim# vi exim.conf # ローカルドメインズを明示する。 local_domains = localhost:\ sasanishiki.kome # 外部へ relay を許可するホストを明示する。 host_accept_relay = 127.0.0.1 : 192.168.0.0/24 # 内部へ relay してもよいドメインズを明示する。 relay_domains = localhost : *.kome # ドメイン kome 宛のメールは外部に出さずに直接配送する。 # domains = *.komeを追加 lookuphost: driver = lookuphost transport = remote_smtp ignore_target_hosts = 127.0.0.0/8 domains = *.kome # 外部に出すメールはプロバイダの MTA に託す。言い替えるとスマートなホストを # 設定する。mb.scatv.ne.jp は私が契約しているプロバイダのメールサーバです。 # 参考 28. The domainlist router(version 3.20) smart_route: driver = domainlist transport = remote_smtp route_list = * mb.scatv.ne.jp bydns_a # 外部にメールを出す時、ここでの例では From アドレスが debian@sasanishiki.kome # という架空のドメインになっています。これではプロバイダのメールサーバに relay # または受け取りを拒否されますので実際のアドレスに書き換える必要があります。 # ここで言う From アドレスとは MTU(Mail User Agent)で設定する Fromアドレスでは # なく exim がプロバイダの MTA(Mail Transfare Agent)とやりとりに使う From # アドレスです。 # REWRITE CONFIGURATION と言うセクションに書きます。 # ここではフラグに "F" を立てています。フラグの意味は以下の通り # E rewrite all envelope fields # F rewrite the envelope From field # T rewrite the envelope To field # b rewrite the "Bcc:" header # c rewrite the "Cc:" header # f rewrite the "From:" header # h rewrite all headers # r rewrite the "Reply-To:" header # s rewrite the "Sender:" header # t rewrite the "To:" header # 参考 34.5 Rewriting flags(version3.20) debian@sasanishiki.kome manabe@mb.scatv.ne.jp F # /etc/exim/exim.conf 終り
参考リンク http://exim.stupendous.net/(Japan) より Documentation and FAQs をクリックしお使いのバージョンに合ったものを選択します。
exim のテストは以下のように行います。 4.15 Testing(version3.20)
# /etc/init.d/exim reload # exim -bV Exim version 3.35 #1 built 04-Mar-2002 23:05:40 Copyright (c) University of Cambridge 2001 # exim -bt debian@localhost debian@localhost deliver to debian in domain localhost director = localuser, transport = local_delivery # exim -bt debian@sasanishiki.kome debian@sasanishiki.kome deliver to debian in domain sasanishiki.kome director = localuser, transport = local_delivery 登録をしていないユーザの場合 # exim -bt manabe@localhost manabe@localhost is undeliverable: unknown local-part "manabe" in domain "localhost" 別のマシン名のユーザ # exim -bt redhat@koshihikari.kome redhat@koshihikari.kome deriver to redhat@koshihikari.kome router = lookuphost, transport = remote_smtp host koshihikari.kome [192.168.0.10] MX=10 外部へ # exim -bt manabe@mb.scatv.ne.jp manabe@mb.scatv.ne.jp deliver to manabe@mb.scatv.ne.jp router = smart_route, transport = remote_smtp host mb.scatv.ne.jp [210.157.235.70] 存在しないドメインは拒否される。 # exim -v manabe@mb.scatv.ne.jp<Return> From: manabe@mb.scatv.ne.jp<Return> To: manabe@mb.scatv.ne.jp<Return> Subject: Testing Exim<Return> <Return> This is a test message.<Return> <Ctr+D> LOG: 0 MAIN <= root@sasanishiki.kome U=root P=local S=331 Exim version 3.35 debug level 1 uid=8 gid=8 Berkeley DB: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99) delivering message 1A3T4X-0000Pt-00 Connecting to mb.scatv.ne.jp [210.157.235.70.25] ... connected SMTP<< 220 cb.scatv.ne.jp ESMTP Sendmail 8.9.3/8.9.3; Sun, 28 Sep 2003 13:24:24 +0900 SMTP>> EHLO sasanishiki.kome SMTP<< 250-cb.scatv.ne.jp Hello hidden-user@cm.scatv.ne.jp [192.168.1.100], pleased to meet you 250-8BITMIME 250-SIZE 5242880 250-DSN 250-ONEX 250-XUSR 250 HELP SMTP>> MAIL FROM:<root@sasanishiki.kome> SIZE=1364 SMTP<< 501 <root@sasanishiki.kome>... Sender domain must exist SMTP>> QUIT rootは From の書き換えの設定をしていないので外部のMTAに配送を拒否される。 ちなみに rootは never_users = root でメールを受け取ることはできない。 メールが配送された例 $ /usr/sbin/exim -v manabe@mb.scatv.ne.jp<Return> From: debian@sasanishiki.kome<Return> To: manabe@mb.scatv.ne.jp<Return> Subject: Testing Exim<Return> <Return> This is a test message.<Return> <Ctr+D> LOG: 0 MAIN <= manabe@mb.scatv.ne.jp U=debian P=local S=333 Exim version 3.35 debug level 1 uid=8 gid=8 Berkeley DB: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99) delivering message 1A3XaO-0000UY-00 Connecting to mb.scatv.ne.jp [210.157.235.70.25] ... connected SMTP<< 220 cb.scatv.ne.jp ESMTP Sendmail 8.9.3/8.9.3; Sun, 28 Sep 2003 18:14:48 +0900 SMTP>> EHLO sasanishiki.kome SMTP<< 250-cb.scatv.ne.jp Hello hidden-user@cm.scatv.ne.jp [192.168.1.100], pleased to meet you 250-8BITMIME 250-SIZE 5242880 250-DSN 250-ONEX 250-XUSR 250 HELP SMTP>> MAIL FROM:<manabe@mb.scatv.ne.jp> SIZE=1366 SMTP<< 250 <manabe@mb.scatv.ne.jp>... Sender ok SMTP>> RCPT TO:<manabe@mb.scatv.ne.jp> SMTP<< 250 <manabe@mb.scatv.ne.jp>... Recipient ok SMTP>> DATA SMTP<< 354 Enter mail, end with "." on a line by itself SMTP>> writing message and terminating "." SMTP<< 250 SAA08245 Message accepted for delivery SMTP>> QUIT LOG: 0 MAIN => manabe@mb.scatv.ne.jp R=smart_route T=remote_smtp H=mb.scatv.ne.jp [210.157.235.70] LOG: 0 MAIN Completed