見出し画像

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でエンジニアではありません。そのためエンジニア目線だとちょっと足りてないだろうな…と感じますがそこはご容赦くださいませ。ちなみにエンジニアはパートナーなのでエラー調査の時間が取れず、私が対応したという形です。

この記事が気に入ったらサポートをしてみませんか?