LoginSignup
3
2

More than 5 years have passed since last update.

Scotch BoxでPHPメール送信(Postfix)

Last updated at Posted at 2016-02-03

Scotch Box(https://box.scotch.io/)において、Postfixを用いてPHPからメール送信する方法について記します。
注意: PHPでPostfixを利用する場合、Scotch Boxにデフォルトで入っているPHPモジュール(mailcatcher)を取り除く必要があります。詳細は下記を参照ください。

環境

  • 仮想環境:vagrant(VirtualBox)
  • Box:Scotch Box(UbuntuのLAMP環境のBox)

手順

目次

  • Postfixインストール
  • Postfix設定
  • Postfix自動起動
  • PHPモジュール削除(mailcatcher)
  • Apache再起動

Postfixインストール

vagrant@scotchbox:~$ sudo apt-get install -y postfix
vagrant@scotchbox:~$ sudo apt-get install -y mailutils

Postfix設定

vagrant@scotchbox:~$ sudo cp /usr/lib/postfix/main.cf /etc/postfix/main.cf
vagrant@scotchbox:~$ sudo vi /etc/postfix/main.cf
# 59行目:コメント解除
mail_owner = postfix
# 76行目:コメント解除しホスト名指定
myhostname = mail.server.world
# 83行目:コメント解除しドメイン名指定
mydomain = server.world
# 104行目:コメント解除
myorigin = $mydomain
# 118行目:コメント解除
inet_interfaces = all
# 166行目:コメント解除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 209行目:コメント解除
local_recipient_maps = unix:passwd.byname $alias_maps
# 268行目:自ネットワーク追記
mynetworks = 127.0.0.0/8, 10.0.0.0/24
# 388行目:コメント解除
alias_maps = hash:/etc/aliases
# 399行目:コメント解除
alias_database = hash:/etc/aliases
# 421行目:コメント解除 ( Maildir形式へ移行 )
home_mailbox = Maildir/
# 557行目:コメントにしてその下に追記
#smtpd_banner = $myhostname ESMTP $mail_name (@@DISTRO@@)
smtpd_banner = $myhostname ESMTP
# 631行目:追記
sendmail_path = /usr/sbin/postfix
# 636行目:追記
newaliases_path = /usr/bin/newaliases
# 641行目:追記
mailq_path = /usr/bin/mailq
# 647行目:追記
setgid_group = postdrop
# 651行目:コメント化
#html_directory =
# 655行目:コメント化
#manpage_directory =
# 660行目:コメント化
#sample_directory =
# 664行目:コメント化
#readme_directory =
# 最終行へ追記:送受信メールサイズを10Mに制限
message_size_limit = 10485760
# メールボックスサイズを1Gに制限
mailbox_size_limit = 1073741824
# 以下SMTP-Auth用
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
vagrant@scotchbox:~$ sudo newaliases
vagrant@scotchbox:~$ sudo service postfix restart

Postfix自動起動

vagrant@scotchbox:~$ sudo sysv-rc-conf postfix on
vagrant@scotchbox:~$ sudo sysv-rc-conf mailutils on

PHPモジュール削除(mailcatcher)

Sctoch Boxには、mailcatcherというダミーのsmtpが付いています。このmailcatcherのモジュールを削除します。

vagrant@scotchbox:~$ sudo rm /etc/php5/apache2/conf.d/20-mailcatcher.ini
vagrant@scotchbox:~$ sudo rm /etc/php5/mods-available/mailcatcher.ini

Apache再起動

vagrant@scotchbox:/tmp$ sudo service apache2 restart

余談

PHPモジュール(mailcatcher)を削除しないと、下記のエラーが出ます。

vagrant@scotchbox:/tmp$ cat ./mailtest.php
<?php
$to='username@domain.com';
$subject='TEST MAIL';
$body='THIS IS TEST';
echo mail($to,$subject,$body);
?>

vagrant@scotchbox:/tmp$ php -f ./mailtest.php
/home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/smtp.rb:541:in `initialize': Connection refused - connect(2) for "127.0.0.1" port 1025 (Errno::ECONNREFUSED)
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/smtp.rb:541:in `open'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/smtp.rb:541:in `tcp_socket'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/smtp.rb:551:in `block in do_start'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/timeout.rb:89:in `block in timeout'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/timeout.rb:99:in `call'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/timeout.rb:99:in `timeout'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/smtp.rb:550:in `do_start'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/2.2.0/net/smtp.rb:520:in `start'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/mail-2.6.3/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/mail-2.6.3/lib/mail/message.rb:2141:in `do_delivery'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/mail-2.6.3/lib/mail/message.rb:238:in `deliver'
    from /home/vagrant/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/mailcatcher-0.6.1/bin/catchmail:71:in `<top (required)>'
    from /home/vagrant/.rbenv/versions/2.2.2/bin/catchmail:23:in `load'
    from /home/vagrant/.rbenv/versions/2.2.2/bin/catchmail:23:in `<main>'

参考資料

http://d.hatena.ne.jp/psquare/20140108/p1
http://blog.shimabox.net/2015/01/30/mailcatcher_not_work/
https://github.com/sj26/mailcatcher/issues/103#issuecomment-22605099
http://www.server-world.info/query?os=Ubuntu_14.04&p=mail

3
2
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
3
2