14
10

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.

さくらのメールボックスを PHPMailer で SMTP + STARTTLS で送信する時の注意点

Posted at

さくらのメールボックスと思われる SMTP から PHPMailer でメールを送信する際にハマったのでメモしておきます。

TL;DR

  • さくらで STARTTLS を使うには独自ドメインではなく初期ドメインを利用します。

ハマった内容

ある案件で以下のような SMTP 情報が共有されました。

サーバー名: dokuji.example.com
ポート番号: 587
ユーザー名: foo@example.com
パスワード: foobar

ということで早速、動作確認済みの PHPMailer の SMTP 情報を書き換えるとエラーが発生してメールが送信できませんでした。

Message could not be sent. Mailer Error: SMTP Error: Could not connect to SMTP host.

PHPMailer にはデバッグ機能があるので以下を追加してログを確認します。

$mail->SMTPDebug = 2;

すると以下のログが表示されました。

2018-02-27 02:15:19 SERVER -&gt; CLIENT: 220 www***.sakura.ne.jp ESMTP Sendmail 8.14.5/8.14.5; Tue, 27 Feb 2018 11:15:16 +0900 (JST)<br>
2018-02-27 02:15:19 CLIENT -&gt; SERVER: EHLO localhost<br>
2018-02-27 02:15:19 SERVER -&gt; CLIENT: 250-www***.sakura.ne.jp Hello ***.ne.jp [*.*.*.*], pleased to meet /* 略 */<br>
2018-02-27 02:15:19 CLIENT -&gt; SERVER: STARTTLS<br>
2018-02-27 02:15:19 SERVER -&gt; CLIENT: 220 2.0.0 Ready to start TLS<br>
SMTP Error: Could not connect to SMTP host.<br>

STARTTLS で弾かれているような感じがしますが、対応していないというわけでもなさそうです。
一旦以下を追加して TLS を無効にします。

$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;

これでテストすると問題なく送信ができました。

のですが、流石に平文でのメール送信はどうかと思うのでなんとか STARTTLS で送信したいところです。

Stack Overflow や PHPMailer のトラブルシューティングなど調べましたがそれっぽい情報は見つかりません。
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

色々調べている と答えは、なんてことはなくさくらの公式ドキュメントにありました。
https://help.sakura.ad.jp/hc/ja/articles/206206021--%E3%81%95%E3%81%8F%E3%82%89%E3%81%AE%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9-%E5%9F%BA%E6%9C%AC%E4%BB%95%E6%A7%98

スクリーンショット 2018-02-27 15.13.55.png

(STARTTLS)
※ 初期ドメインのみ

( ゚д゚)

ということで初期ドメインを指定すればいいようです。
PHPMailer のログでサーバーが初期ドメイン名を返しているのでこれをそのまま HOST へ指定すると問題なく送信できました。

$mail->Host = 'www***.sakura.ne.jp';
14
10
1

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
14
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?