PHPMailerでメールを送信する際にTLS / SSL暗号化させる方法
PHPMailerでメールを送信したところGmailで確認すると赤い鍵のようなアイコンが表示されていた。内容を確認すると送信時にメールが暗号化されておらず、メールの安全性が保証されていないというものらしい。以下にPHPMailerでの暗号化方法のメモ。
PHPMailerの用意
今回はcomposerは使わず以下からダウンロードした。
https://github.com/PHPMailer/PHPMailer
「PHPMailer.php」のみアップロードする。
ソースコード
<?php
mb_language('japanese');
mb_internal_encoding('UTF-8');
$to = 'to@test.com,to2@test.com';
$from = 'from@test.com';
$from_name = '送信者';
$now = new DateTime();
$subject = 'タイトル';
$message = '本文';
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
//暗号化
$mail->SMTPSecure = 'tls'; //tls or ssl
$mail->setFrom($from, $from_name);
//toを分割してループでaddAddressに追加
$to = explode(',', $to);
for( $i = 0; $i < count($to); $i++){
$mail->addAddress($to[$i]);
}
$mail->Sender = $from;
$mail->Subject = $subject;
$mail->Body = $message;
$return = ( $mail->Send() ) ? true : false;
var_dump($return);
注意点
サーバによっては対応してないところがあるかも。今回テストしたのはKAGOYAサーバでSSLは利用不可、TLSは利用可だった。
関連記事
-
-
メールサーバーを構築せずにGmailのSMPTを使ってPHPでメール送信
メールサーバーが立てられなかったり、無料サーバーのため使えなかったりといった場合 ...
-
-
PHPでファイルを添付してメールを送信する方法(PHPMailer)
PHPでファイルを添付の上、メールを送信したかった。方法を探したところphpma ...
-
-
SendGridを使ってメールサーバを構築せずにPHPからメールを送信する方法
メールサーバを構築せずに独自ドメインのメールアドレスにてメール送信を行いたい。過 ...
-
-
PHPMailerでエラーメッセージを日本語で出力する方法
PHPMailerのGitHubページを見ていると言語設定についての案内を見つけ ...
-
-
Mailtrap & PHPMailerでメールサーバ無しの環境でもメール送信テストを行う方法
開発環境等メールサーバが無い環境でメール送信テストを行う際にMailtrapとい ...