#
ドキュメント

Document

自分のための備忘録です。

PHPメール送信

文字コード

  • ISO-2022-JP(JISコードと呼ばれるもの)
  • UTF-8

現在はUTF-8を使用してもよくなりつつある。

Macでメール送信テスト

簡単に確認する方法は以下2つがある。

  • MailHogを使用
  • Mailtrapを使用

MailHog

Install

公式サイトの手順ではメールを送信することができなかった。
以下手順で送信できることを確認。

  1. MailHogをインストール
  2. /etc/postfix/main.cfを編集(relayhost = [0.0.0.0]:1025を追加)
  3. Mailhog起動
  4. mb_send_mail()を使って動作確認

MailHogをインストール

$ brew update && brew install mailhog

/etc/postfix/main.cfにrelayhost = [0.0.0.0]:1025を追加

こちら記載なくても動くことを確認。

$ sudo vim /etc/postfix/main.cf

main.cf

#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
+ relayhost = [0.0.0.0]:1025

MailHog起動

$ mailhog

ブラウザでアクセス

http://0.0.0.0:8025

メール送信テスト

mb_send_mail('info@example.com', '件名です', '本文 です' . PHP_EOL .'こんにちは');

Tips

PHPのREPLPsySHを導入するとCLIで簡単にプログラムを試すことができる。

$ psysh

>>> mb_send_mail('h-sawai@quartetcom.co.jp', '件名です', '本文 です' . PHP_EOL .'こんにちはsendmail!');

ttskch/contact-formをmailtrap.ioを使ってローカルでテスト

https://github.com/ttskch/contact-form

\Ttskch\ContactForm\ContactFormの第2引数に、mailtrapの認証情報を設定したSwift_SmtpTransportのインスタンスを渡す。

$cf = new \Ttskch\ContactForm\ContactForm(null, $transport = (new Swift_SmtpTransport('smtp.mailtrap.io', 587, 'tls'))
    ->setUsername('{USERNAME}')
    ->setPassword('{PASSWORD}'));