SMTPを使ってメール送信。PHPMailer 6を利用する。

PHP

手軽にメールを送信できるPHPだが、迷惑フォルダに入ってしまうという報告を多く耳にするので、その対策としてSMTPでメールを送信します。

その対策として利用させてもらうのが、PHPMailer。QdMailというライブラリもあるようだが、随分前に開発がストップしているのか更新がストップしたままということで、PHPMailerを薦めている方が多く、今回、このPHPMailerを使います。

WordPressもこのPHPMailerを使っているとの情報もあるので、これも安心材料と言えるのではないでしょうか。

 

PHPMailerの最新バージョンを使う

現在の最新バージョンは6.0.7。以下よりダウンロード

PHPMailer/PHPMailer
The classic email sending library for PHP. Contribute to PHPMailer/PHPMailer development by creating an account on GitHub.

ZIP形式のファイルをダウンロードし解凍。

解凍したフォルダを「PHPMailer」とリネームして運営サイトのデイレクリにアップロード。

 

サンプルソース

以下はメール送信時のサンプルソース。

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;


/*
require '/virtual/****/public_html/****/PHPMailer/src/Exception.php';
require '/virtual/****/public_html/****/PHPMailer/src/PHPMailer.php';
require '/virtual/****/public_html/****/PHPMailer/src/SMTP.php';
*/

//以下のパス指定でも可

require($_SERVER['DOCUMENT_ROOT'] . '/PHPMailer/src/Exception.php');
require($_SERVER['DOCUMENT_ROOT'] . '/PHPMailer/src/PHPMailer.php');
require($_SERVER['DOCUMENT_ROOT'] . '/PHPMailer/src/SMTP.php');


$mail = new PHPMailer(true);                 // Passing `true` enables exceptions
try {
    //Server settings
    $mail->SMTPDebug = 2;                    // Enable verbose debug output
    $mail->isSMTP();                         // Set mailer to use SMTP
    $mail->Host = 'SMTP.exsample.com';       // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                  // Enable SMTP authentication
    $mail->CharSet = 'utf-8';                //文字セットこれでOK
    $mail->Username = '***@***.com';         // SMTP username
    $mail->Password = '******';              // SMTP password
    $mail->SMTPSecure = 'tls';               // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                       // TCP port to connect to (ssl:465)

    //Recipients
    $mail->setFrom('***@***.com', '送信者名');     //必ずしも送信アドレスと同一でなくても送れる
    $mail->addAddress('***@***.jp', '宛先名');     // Add a recipient
    $mail->addAddress('***@***.com');             // Name is optional
    $mail->addReplyTo('***@***.co.jp', 'Information');             //エラーとして戻ってくる先
    $mail->addCC('cc@***.net');
    $mail->addBCC('bcc@***.jp');

    //Attachments
//    $mail->addAttachment('/var/tmp/file.tar.gz');         // 添付ファイルのパス
//    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // 添付ファイルのパスとその名称

    //Content
    $mail->isHTML(false);                           // HTMLメールのときは「true」、textメールのときは「false」
    $mail->Subject = mb_convert_encoding("件名です。", "UTF-8", "AUTO");
//    $mail->Body    = '<html>日本語本文</html>';	//htmlメール
//    $mail->AltBody = '日本語本文';			//htmlメール
    $mail->Body    = '日本語本文';			//textメール

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}

?>

 

 

コメント

タイトルとURLをコピーしました