勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPMailerでメールを送信する際にTLS / SSL暗号化させる方法

  PHP

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は利用可だった。

 - PHP

  関連記事

PHPMailerを使ってメールをSMTP送信する方法(Composer無し)

PHPでメールをSMTP送信したかった。また、レンタルサーバだったのでCompo ...

Mailtrap & PHPMailerでメールサーバ無しの環境でもメール送信テストを行う方法

開発環境等メールサーバが無い環境でメール送信テストを行う際にMailtrapとい ...

SendGridを使ってメールサーバを構築せずにPHPからメールを送信する方法

メールサーバを構築せずに独自ドメインのメールアドレスにてメール送信を行いたい。過 ...

PHPMailerでエラーメッセージ及びデバッグログの表示方法について

PHPMailerでエラーメッセージ及びデバッグログを表示させたいというケースが ...

PHPでファイルを添付してメールを送信する方法(PHPMailer)

PHPでファイルを添付の上、メールを送信したかった。方法を探したところphpma ...