4.1 メールを受け取れるように -- postfix を設定する

現在使っているメールアカウントは大学のメール・サーバー上のものだが、 希望するホストに転送するという機能がある。 これを使って、自分の研究室の Mac に転送することにした。

Mac で受けるには、まあ postfix を使うのでしょうか。 これは普通のやり方で良い。

/etc/postfix/main.cf を編集する。

[chronos:/etc/postfix] mk% cd /etc/postfix
[chronos:/etc/postfix] mk% sudo cp -p main.cf main.cf.org
[chronos:/etc/postfix] mk% sudo vi main.cf
[chronos:/etc/postfix] mk% diff main.cf.org main.cf
70a71
> myhostname = ホスト名.サブドメイン.meiji.ac.jp
77a79
> mydomain = ホスト名.サブドメイン.meiji.ac.jp
93a96
> myorigin = $mydomain
109a113
> inet_interfaces = all
157a162,163
> mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
>       mail.$mydomain, www.$mydomain, ftp.$mydomain
256a263
> mynetworks = 132.26.0.0/16, 127.0.0.0/8
409a417,418
> #home_mailbox = mbox             # classic?
> #home_mailbox = Mail/inbox/      # NG
415c424
< #mail_spool_directory = /var/mail
---
> mail_spool_directory = /var/mail
656c665
< mydomain_fallback = localhost
---
> #mydomain_fallback = localhost
659c668
< mynetworks = 127.0.0.0/8
---
> #mynetworks = 127.0.0.0/8
[chronos:/etc/postfix] mk%
正式にサブドメインを取るわけでないので、 mydomain == myhostname としている。

こうしておいて
sudo launchctl load -F /System/Library/LaunchDaemons/org.postfix.master.plist

実際には何度も main.cnf を書き直す。書き直すたびに
sudo postfix reload
とする。

テストしてみよう。まず自分に出してみる。 これはローカルに処理されるはずだ。
[chronos:/etc/postfix] % telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220-ホスト名.サブドメイン名.meiji.ac.jp ESMTP Postfix
220 ホスト名.サブドメイン名.meiji.ac.jp ESMTP Postfix
HELO localhost
250 ホスト名.サブドメイン名.meiji.ac.jp
MAIL FROM:ユーザー名@ホスト名.サブドメイン名.meiji.ac.jp
250 2.1.0 Ok
RCPT TO:ユーザー名@ホスト名.サブドメイン名.meiji.ac.jp
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
FROM:ユーザー名@ホスト名.サブドメイン名.meiji.ac.jp
Subject: Hello by myself
This is a test.
.
250 2.0.0 Ok: queued as 14A80579AC29
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
[chronos:/etc/postfix] %

これで無事 /var/mail/mk にたまる。 telnet でポートを叩くのではなく、 mail -s hello mk@ホスト名.サブドメイン名.meiji.ac.jp としても大丈夫だった。 ログは /var/log/mail.log にたまる。

大学のメール・サーバーで転送の設定をして無事動作することを確認した。

これでメールを出せないけれど、受け取れるようになった。

(2017/5/13追記) ここまでの設定では、 システム起動時に自動的に Postfix が起動されるようになっていない。 http://qiita.com/tmsanrinsha/items/75e06fbdd7e12409bb02にあるように /System/Library/LaunchDaemons/org.postfix.master.plist を書き換えるのかな? でも 「Mac OS の System Integrity Protection」 にあるみたいに、 /System/Library/LaunchDaemons/ にはガードがかかっている。 時間に余裕のあるときでないとダメだね。

桂田 祐史
2017-12-10