CPIサーバーで運用中のシステムから送信するメールがGメール宛に届かない現象が発生したため別のメールサーバーのSMTPを使ってメール送信することにしました。
現行システムは “PHP 5.5.27” で動いているため SMTPでメール送信するためのライブラリに “PHPMailer” の最新バージョンは使わず “PHPMailer 5.2” を利用することにしました。
PHPMailer5.2の取得
GitHubで管理されているリポジトリに “5.2-stable” というブランチがありますのでご都合いい方法でダウンロードします。
私はサーバー上で wget で取得しました。
wget --no-check-certificate https://github.com/PHPMailer/PHPMailer/archive/refs/heads/5.2-stable.zip
送信プログラム作成
<?php
//
require './PHPMailer-5.2-stable/class.phpmailer.php';
require './PHPMailer-5.2-stable/class.smtp.php';
$mail = new PHPMailer();
try {
// SMTP用アカウント設定
$host = 'smtp.example.com';
$user = 'user';
$pass = 'pass1234';
// アドレス等設定
$from_mail = 'contact@example';
$from_name = '送信者名テキスト';
$mail_to = 'user@example.com';
$mail_to_name = '○○ 様';
$mail_cc = 'cc1@example.com';
$mail_cc2 = 'cc2@example.com';
$mail_bcc = 'bcc1@example.com';
// タイトル
$subject = '送信メールのタイトル';
// 本文設定
$body_txt = '○○様'."\n\n";
$body_txt .= 'テストメール本文テキストです。'."\n\n";
$body_txt .= '以上。';
// SMTPサーバーの設定
$mail->isSMTP();
$mail->Host = $host; // SMTPサーバーのアドレス
$mail->SMTPAuth = true; //
$mail->Username = $user; // SMTPユーザー名
$mail->Password = $pass; // SMTPパスワード
$mail->SMTPSecure = 'tls'; // 暗号化を使用する場合('tls' または 'ssl')
$mail->Port = 587; // SMTPポート
$mail->CharSet = 'UTF-8';
// メール内容の設定
$mail->setFrom($from_mail, $from_name);
$mail->addAddress($mail_to, $mail_to_name); // 受信者を追加
$mail->addReplyTo($from_mail, $from_name);
// Cc アドレス設定
$mail->addCC($mail_cc); //
$mail->addCC($mail_cc2); //
// Bcc アドレス設定
$mail->addBCC($mail_bcc);
// コンテンツ
$mail->isHTML(false); // HTMLメールを設定
$mail->Subject = $subject;
$mail->Body = $body_txt;
// $mail->AltBody = ''; // HTMLメールの場合設定
// 送信
$mail->send();
echo 'Message has been sent';
} catch (phpmailerException $e) {
echo "Message could not be sent. PHPMailer Error: " . $mail->ErrorInfo;
} catch (Exception $e) {
// その他の例外をキャッチ
echo 'Message could not be sent. Error: ', $e->getMessage();
}
動作環境情報
"PHP" 5.5.27 "PHPMailer" 5.2 "CPIサーバー" シェアードプラン ACE01
コメント