ローカルメールテスト検証
ローカルメールのテスト
メール送信のテストを行う際、外部にメールを送信するわけにはいかないのでローカルでの設定
インストール
postfix
sudo yum install -y postfix sudo service postfix start sudo chkconfig postfix on
dovecot
sudo yum install -y dovecot sudo service dovecot start sudo chkconfig dovecot on
設定
設定バックアップ
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
※変更&追加
作成
sudo postmap /etc/postfix/transport
メール保存先を作成
sudo mkdir -p /usr/local/mail/ sudo chmod 777 /usr/local/mail/
テスト用ユーザーを作成
sudo useradd maildev sudo passwd maildev
再起動
sudo service postfix reload
dovecot.confのバックアップ
sudo cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.org
確認
telnetを入れてない場合はインストール
sudo yum install -y telnet
テスト
[vagrant@localhost ~]$ telnet localhost 25 Trying ::1... Connected to localhost. Escape character is '^]'. 220 localhost.localdomain ESMTP Postfix helo localhost 250 localhost.localdomain 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 aaaaaaaaaa dddddddddddddd vvvvvvvvvvvvvvvvv . 250 2.0.0 Ok: queued as C47341040680 quit 221 2.0.0 Bye Connection closed by foreign host. [vagrant@localhost ~]$
[vagrant@localhost ~]$ sudo tree /usr/local/mail/maildev/ /usr/local/mail/maildev/ ├── cur ├── new │ └── 1404902870.Vfd00I440671M543196.localhost.localdomain └── tmp 3 directories, 1 file [vagrant@localhost ~]$
確認
[vagrant@localhost ~]$ sudo cat /usr/local/mail/maildev/new/1404902870.Vfd00I440671M543196.localhost.localdomain Return-Path: <aaaa@test1.com> X-Original-To: bbb@hoge.com Delivered-To: bbb@hoge.com Received: from localhost (localhost [IPv6:::1]) by localhost.localdomain (Postfix) with SMTP id C47341040680 for <bbb@hoge.com>; Wed, 9 Jul 2014 10:47:10 +0000 (UTC) subject: test2 Message-Id: <20140709104728.C47341040680@localhost.localdomain> Date: Wed, 9 Jul 2014 10:47:10 +0000 (UTC) From: aaaa@test1.com To: undisclosed-recipients:; aaaaaaaaaa dddddddddddddd vvvvvvvvvvvvvvvvv [vagrant@localhost ~]$
phpで送信
testmail.php
<?php $mail_to = "example@example.com"; $subject = "テストメール"; $mailbody = " テスト メール でした "; $headers = "From: from@example.com"; if (mb_send_mail( $mail_to, $subject, $mailbody, $headers)) { echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } ?>
結果
Return-Path: <vagrant@localhost.localdomain> X-Original-To: example@example.com Delivered-To: example@example.com Received: by localhost.localdomain (Postfix, from userid 501) id 1F7361040682; Wed, 9 Jul 2014 10:57:44 +0000 (UTC) To: example@example.com Subject: =?UTF-8?B?44OG44K544OI44Oh44O844Or?= X-PHP-Originating-Script: 501:testmail.php From: from@example.com MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: BASE64 Message-Id: <20140709105744.1F7361040682@localhost.localdomain> Date: Wed, 9 Jul 2014 10:57:44 +0000 (UTC) CuODhuOCueODiArjg6Hjg7zjg6sK44Gn44GX44GfCg==
※base64の全角部分はなんとかならんかな?
さんだーばーどで参照
※まあ、クライアントで見れたしこれでいいかな