
Azure環境でSMTPにoffice365を設定する
AzureにSMTPを設定する際にWebでの情報も少なく非常に困ったので、備忘録として残します。
・PHPMailerを使用
・SMTPにoffice365のアカウントを使用
にて設定をした記録です。
まずクライアントからSMTPで設定するoffice365のアカウント情報(IDとパスワード)をもらいました。PHPMailerでのSMTPの設定はこちらが参考になると思います。こちらを参考に設定しますが、エラーが出ます。どうやらパスワードエラーのようです。
問題点①office365のパスワード設定ミス
前述したパスワードエラーですが、クライアントに確認したところパスワードが初期パスワードで再設定の必要ありのものでした。初歩的なミスですが、こちらのミスではないので仕方ありません。再設定したパスワードを入力しますが、今度は認証エラーが出ます。
問題点②SMTPの認証設定
今度は認証エラーです。以下2点を試します。
・以前クライアントからSMTPにIP制限を掛けていると聞いていたのでAzureのIPを除外してもらう
・office365のアカウントの設定で「SMTP AUTH」という項目があり、クライアントのoffice365管理者にこれを有効にしてもらう
認証エラーは出なくなりましたが、またエラーが出ます。
問題点③AzureにSendmailがインストールされていない
次のエラーを一個ずつ確認していくとSendmailがインストールされているはずのパスが書かれています。もしや…と思ってそのパスを見に行くとSendmailがありません。PHPMailerはSendmailがないと送信できないようなので、Azureの管理者へ連絡してSendmailをインストールしてもらいます。
そうするとエラーが出なくなり、送信も成功しました。
他に試したこと
念のためphp.iniにmail functionの設定を追加しました。
参考:https://techplay.jp/column/550「SMTP経由でメール送信するには?」
[mail function]
; http://php.net/smtp
SMTP = smtp.xxxxx.com
; http://php.net/smtp-port
smtp_port = 587
まとめ
今回はAzureを用意したのが別の会社ということもあり、インストールされているものや仕様など細かな情報が開示されておらず、調べながら対応していきました。
あとはとにかくエラーを一個一個潰して行くしかないですね。やはりこれに限ります。
また、Azureとoffice365をSMTPに設定するのは検索しても情報が少ないのが厄介でした…この情報がどなたかの為になれば嬉しいです。
ちなみに私はデザイナー出身のPMでエンジニアではありません。そのためエンジニア目線だとちょっと足りてないだろうな…と感じますがそこはご容赦くださいませ。ちなみにエンジニアはパートナーなのでエラー調査の時間が取れず、私が対応したという形です。