Wordpressでメール送信を設定するとき、普段はプラグインWP Mail SMTP by WPFormsを利用するのだが、office365のメールサーバーで設定しようとした際にPRO版が必要だったため、functions.phpに追記して対応したときの備忘録
functions.php
add_action("phpmailer_init", "send_mail_smtp");
function send_mail_smtp($phpmailer)
{
$phpmailer->isSMTP(); //SMTP有効設定
$phpmailer->Host = "smtp.office365.com"; //メールサーバーのホスト名
$phpmailer->SMTPAuth = true; //SMTP認証の有無(true OR false)
$phpmailer->Port = "587"; //SMTPポート番号(ssl:465 tls:587)
$phpmailer->Username = "ユーザー名"; //ユーザー名
$phpmailer->Password = "ユーザーパスワード"; //パスワード
$phpmailer->SMTPSecure = "tls"; //SMTP暗号化方式(ssl OR tls)
$phpmailer->From = "hoge@example.com"; //送信者メールアドレス
// $phpmailer->SMTPDebug = 2; //デバッグ表示
}
上記をfunctions.phpに追記したら、あとはメール送信処理の部分でwp_mail関数を実行するだけ
hoge.php
$to = "送信先メールアドレス";
$subject = "件名";
$body = "本文";
$headers[] = "Cc: cc@example.com";
wp_mail($to, $subject, $body, $headers);
wp_mail関数のパラメータについては下記参照
https://wpdocs.osdn.jp/関数リファレンス/wp_mail
送信者メールアドレスの部分を"noreply@example.com"等にしたかったのだが、
上記設定wp_mail関数を利用したところUsernameとFromの不一致でエラーとなり送信できなかったため、
今回は$phpmailer->From
は$phpmailer->Username
と同一のメールアドレスとした。