macのpostfixでローカルメールを扱う
基本的には
postfix
存在チェック
$ which postfix /usr/sbin/postfix $
あるのでそのまま
起動
sudo postfix start
設定ファイルバックアップ
sudo cp -p /etc/postfix/main.cf /etc/postfix/main.cf.org
/etc/postfix/main.cf編集
# 全てのメールを受け取る inet_interfaces = all # ローカル配送で不明なユーザを拒否しない local_recipient_maps = # Maildir形式として保存するディレクトリを /usr/local/mail/ の下にユーザー毎に作成する mail_spool_directory = /usr/local/mail/ # ローカル配送で不明なユーザへのメールは maildev へ送る luser_relay = maildev # トランスポートマップを指定 transport_maps = hash:/etc/postfix/transport
※末尾に追加
postmapで作成
sudo postmap /etc/postfix/transport
メール保存先を準備
sudo mkdir -p /usr/local/mail/ sudo chmod 777 /usr/local/mail/
ユーザーを作成
sudo dscl . -create /Groups/users gid 1001 sudo dscl . -create /Users/maildev sudo dscl . -create /Users/maildev RealName maildev sudo dscl . -create /Users/maildev UniqueID 1001 sudo dscl . -create /Users/maildev PrimaryGroupID 1001 sudo dscl . -create /Users/maildev NFSHomeDirectory /Users/maildev sudo dscl . -create /Users/maildev UserShell /bin/bash sudo passwd maildev sudo createhomedir -b -u maildev
※500番台を使用するとシステムが使えなくなる恐れがあるので気をつける必要があります。
リロード
sudo postfix reload
dovecot確認
brew install
$ brew install dovecot
READMEを確認
$ cat /usr/local/etc/dovecot/README Configuration files go to this directory. See example configuration files in /usr/local/Cellar/dovecot/2.2.27/share/doc/dovecot/example-config/ $
移動
cp /usr/local/Cellar/dovecot/2.2.27/share/doc/dovecot/example-config/dovecot.conf /usr/local/etc/dovecot/ cp -r /usr/local/Cellar/dovecot/2.2.27/share/doc/dovecot/example-config/conf.d /usr/local/etc/dovecot/
起動
sudo brew services start dovecot
/usr/local/etc/dovecot/dovecot.conf
protocols = imap pop3 mail_location = maildir:/usr/local/mail/%u
再起動
sudo brew services restart dovecot
テスト
$ telnet localhost 25 Trying ::1... Connected to localhost. Escape character is '^]'. 220 matsumotoshigejinoMac-mini.local ESMTP Postfix helo localhost 250 matsumotoshigejinoMac-mini.local mail from: aaaa@test1.com 250 2.1.0 Ok rcpt to: bbb@hoge.com 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> subject: test2 aaaaaa ssssssssss ddddd . 250 2.0.0 Ok: queued as 5AA2D4F6580 quit 221 2.0.0 Bye Connection closed by foreign host. $
メール確認
$ ll /usr/local/mail/maildev/new/ total 8 -rw------- 1 maildev 601 443 1 7 02:21 1483723300.V1000008I4f6595M15495.matsumotoshigejinoMac-mini.local $
ソース内容
Return-Path: <aaaa@test1.com> X-Original-To: bbb@hoge.com Delivered-To: bbb@hoge.com Received: from localhost (localhost [IPv6:::1]) by matsumotoshigejinoMac-mini.local (Postfix) with SMTP id 5AA2D4F6580 for <bbb@hoge.com>; Sat, 7 Jan 2017 02:21:02 +0900 (JST) subject: test2 Message-Id: <20170106172111.5AA2D4F6580@matsumotoshigejinoMac-mini.local> Date: Sat, 7 Jan 2017 02:21:02 +0900 (JST) From: aaaa@test1.com aaaaaa ssssssssss ddddd
こんな感じ?