勉強したことのメモ

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

PHPでHTMLメールを送信する方法(PHPMailerあり無しの2パターン)

   2024/01/12  PHP

PHPでHTMLメールを送信したい。また、メール関連の機能を実装する際は環境によってPHPMailerを使ったり使わなかったりする。そのためPHPMailerあり無し2パターンの実装方法を以下にメモ。

 

PHPMailerあり

<?php
include('./PHPMailer.php');
mb_language("japanese");
mb_internal_encoding("UTF-8");

$to = "to@test.com";
$subject = "メールのタイトル";

$message = '本文をHTML形式で記述';
$from = 'from@test.com';

$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->CharSet = "UTF-8";
$mail->Encoding = "base64";
$mail->setFrom($from);
$mail->addAddress($to);
$mail->Subject = '件名';
$mail->isHTML(true);
$mail->Body = $message;
$mail->Send();

PHPMailerは公式サイトよりダウンロードし、適当なディレクトリにアップロードしておく。

 

PHPMailer無し

<?php
$to = "to@test.com";
$subject = "件名";
$message = '本文をHTML形式で記述';
$headers = "From: from@test.com";
$headers .= "\r\n";
$headers .= "Content-type: text/html; charset=UTF-8";

mail($to, $subject, $message, $headers);

 

動作テスト

適当なHTMLメールテンプレートを用いてテスト送信してみたところ、メールソフトのThunderbirdやブラウザ版のGmailで正常に受信でき、文字化け等も無かった。

 

所感

動作テストでは特に問題は見受けられなかったが、運用していくと恐らく文字化けとかの問題に遭遇しそうな気がする。気を付けるところをまとめた記事もあるようなので困ったときは参考にする。

 

参考サイト

https://its-office.jp/blog/php/2017/05/28/phpmailer.html

 - PHP

  関連記事

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

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

【2024年版】PHPMailerでGmailのSMTPサーバを経由してメールを送信する方法

だいぶ前に同じようなことをメモしたが、そちらの方法だと送信できずエラー内容を見た ...

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

PHPMailerでメールを送信したところGmailで確認すると赤い鍵のようなア ...

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

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

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

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