2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacPortsからDovecotとPostfixをインストールして開発環境でメール配信のテストをする

Posted at

サービス開発中に、メール送信のテストをしたいけど、
外には送信したくない、もしくは送信できない場合、
ローカルにメールサーバーを構築するといいです。

DovecotとPostfixが扱いやすいのでこの2つを選びます。

Portsの更新

まずはportsを更新しておきましょう。

$ sudo port selfupdate

Dovecot

ではDovecotから。

Dovecotインストール

$ sudo port install dovecot2

Dovecot設定

設定ファイルをexampleディレクトリからコピー

$ sudo cp /opt/local/share/doc/dovecot/example-config/dovecot.conf /opt/local/etc/dovecot
$ sudo cp /opt/local/share/doc/dovecot/example-config/conf.d /opt/local/etc/dovecot

conf.dには各種インクルードファイルがおいてあるのでそのままコピーしておくといいです。

Dovecotを設定しましょう

/opt/local/etc/dovecot/dovecot.conf
protocols = imap
 
#!include conf.d/*.conf
!include conf.d/10-master.conf
!include conf.d/10-auth.conf
 
#!include_try local.conf
 
ssl = no
 
mail_location = maildir:~/Maildir

プロトコルはimapだけでいいと思います。
10-master.confには基本動作に必要な設定が書かれているのでインクルード。
10-auth.confではプレーンテキストでのログインとauth-system.conf.extがインクルードされているので必要。
sslの設定は面倒なので利用不可にしてしまいます。

pamの設定

今回重要なのがpamの設定です。

/opt/local/etc/dovecot/conf.d/auth-system.conf.ext
passdb {
  driver = pam
  # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=]
  # [cache_key=] []
  #args = dovecot
  args = login
}

デフォルトではdovecot用にユーザーを登録したりしなければいけないですが、面倒なのでMacのユーザーをそのまま使います。
Postfox側も(表現は正確ではないけど)Macのユーザーでメール送受信するのでこの方法が都合がいいです。
「args = login」としてmacの認証機構を利用するようにします。

Dovecot起動

では起動しましょう。

$ sudo port load dovecot2

最近のMacPortsは「port load」でlaunchctlのloadとstartまでやってくれます。(前からそうだった?)

これでひとまずimap接続が出来るようになりました。

Postfix

次にPostfixをいれます。
標準でもPostfixはインストールされていますが、
Dovecotに合わせて開発環境用にはMacPortsのものを使います。

Postfixインストール

$ sudo port install postfix

aliasデータベース作成

このまま起動するとaliasデータベースが無いよと怒られるので

$ cd /opt/local/etc/potfix
$ sudo newaliases

Maildir形式の設定

dovecotに合わせてMaildir形式で扱うようにします

/opt/local/etc/potfix/main.cf
home_mailbox = Maildir/

sendmailコマンドへのリンク

このまま起動してもPHPなどから呼び出される/usr/sbin/sendmailコマンドは、標準でインストールされているPostfixのもの(?)が使われてしまいます。
そうすると、SMTP経由ではMaildir形式に入ったのに、PHP経由等でsendmailコマンドを使った時はmbox形式になったりと、統一されない動きになります。

コマンドを置き換えてしまいましょう。

$ sudo mv /usr/sbin/sendmail /usr/sbin/sendmail.org
$ sudo ln -s /opt/local/sbin/sendmail /usr/sbin/sendmail

Linuxディストリだと設定ファイルで切替ができるのにMacPortsは/opt配下だけに対象を限定するのが基本だからでしょうかね。
port upgradeする度にこれをやらなければいけないのが面倒。

Postfix起動

では起動

$ sudo port load postfix

あとがき

以上でMac上でPHPなどを使ったメール送信のテスト環境が出来上がりました。

うまく動かないときは/var/log/maillogを見るとわかるかもしれません。

ちなみに私は、通常のメールにはMail.appを使いますが、
テストのメールにはThunderbirdを使ってメールを閲覧しています。

検証環境

Mac OS X 10.9.5 (Mavericks)
MacPorts 2.3.1
dovecot 2.2.13
postfix 2.11.1

補足

ブログからの転載です
http://blog.genieframe.com/2011/09/26/macportsからdovecotとpostfixをインストールしてメール環境を作/

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?