Webサイト構築・Webシステムやスマホに関する情報を発信しています。

PHPMailerからGmailへ接続してメール送信する方法

PHPMailer + Gmail(SMTP) 送信


PHPMailer から Gmail のSMTP に接続して、メール送信する方法は
Google で検索すれば、実例コードがたくさん出てくるかと思います。

今回、私が使っている Windows10 内の PHP-7.3 (Xampp)では送信が成功せず
しばらく解決に時間が掛かりました。

以前にも同様の事例で悩んだことはあるんですが、解決した方法を忘れてしまい
余計な時間を浪費してしまいました。

同様の事例に困っている方の手助けになれれば幸いです。

解決方法は、他にもあるかもしれませんが
私が解決した方法を紹介します。

SSLサーバー証明書の検証」をさせないように設定を追加することで解決しました。

SMTPOptions を設定する必要がありました。


PHPMailer での文字コードは、全て "UTF-8" にしています。
PHPMailer の バージョン 6.1 からは、JISコードで変換して送信すると文字化けが発生します。
解決策はあるのでしょうが、そろそろ、"UTF-8" でもいいんじゃないかと思い
今後は、メール送信する場合は、"UTF-8" での送信を進めていくことにします。

環境

OS : Windows-10
PHP : PHP-7.3.2 (Xampp)
PHPMailer : 6.1.5


PHP

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// Composer を使っています。
require 'autoload.php';

date_default_timezone_set('Asia/Tokyo');
mb_language('japanese');
mb_internal_encoding('utf-8');

$mail = new PHPMailer();

$mail->CharSet = 'utf-8';

// デバックの設定はお好みで
$mail->SMTPDebug = 2;

// SMTP
$mail->isSMTP();

// hostname
$mail->Host = 'smtp.gmail.com';

// SMTP port (587)
$mail->Port = 587;

// 暗号化 (ssl|tls)
$mail->SMTPSecure = 'tls';

// SMTP認証
$mail->SMTPAuth = TRUE;

// ユーザー名 (Gmailのアカウント名)
$mail->Username = "example@gmail.com";

// パスワード (Gmailのパスワード)
$mail->Password = "PASSWORD";

// オプション (※ これを設定していなかった為、送信に失敗していた)
$mail->SMTPOptions = [
 'ssl' => [
  // SSLサーバー証明書の検証を要求するか (デフォルト:TRUE)
  'verify_peer' => FALSE
  // ピア名の検証を要求するか (デフォルト:TRUE)
  ,'verify_peer_name' => FALSE
  // 自己証明の証明書を許可するか (デフォルト:FALSE、TRUEにする場合は「verify_peer」をFALSEにする)
  ,'allow_self_signed' => TRUE
 ]
];


// From address
$mail->setFrom('送信元メールアドレス', '送信者名');

// Reply-to address
$mail->addReplyTo('返信先メールアドレス', '送信者名');

// To address
$mail->addAddress('送信先メールアドレス', '受信者名');

// 件名
$mail->Subject = 'PHPMailer SMTP GMail テスト';

// 本文 HTMLを無効 (PLAINのみ)
$mail->isHTML(false);
$mail->Body = 'PHPMailer SMTP GMail テスト 本文';

// X-Mailer を非表示にする
$mail->XMailer = null;

// 送信
if ( ! $mail->send()) {
 echo "Mailer Error: " . $mail->ErrorInfo;
} else {
 echo "Message sent!";
}



以上

Windows-10 の PHP-7.3(Xampp) 環境で、PHPMailer から Gmail 経由でメール送信する方法でした。



0 件のコメント:

人気記事

Profile

大阪在住のWebプログラマーです。
40歳後半までプログラマーとして働いていたのですが途中で鬱に近い状態になり、直近で1年程、引きこもりに・・・
生活が苦しくなり、老人ホームで介護士として働くも途中で挫折。
50歳を過ぎて、またプログラマーとして働き始めました。

ラベル

ページ

このブログを検索