PHPでHTMLメールを送信する方法(PHPMailerあり無しの2パターン)
2024/01/12
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で正常に受信でき、文字化け等も無かった。
所感
動作テストでは特に問題は見受けられなかったが、運用していくと恐らく文字化けとかの問題に遭遇しそうな気がする。気を付けるところをまとめた記事もあるようなので困ったときは参考にする。
参考サイト
関連記事
-
PHPMailerでエラーメッセージ及びデバッグログの表示方法について
PHPMailerでエラーメッセージ及びデバッグログを表示させたいというケースが ...
-
PHPでメール送信時に返信先(Reply-To)を指定する方法
PHPにてメールを送信し、そのメールに対して返信しようとすると通常は送信元のメー ...
-
PHPMailerでエラーメッセージを日本語で出力する方法
PHPMailerのGitHubページを見ていると言語設定についての案内を見つけ ...
-
メールサーバーを構築せずにGmailのSMPTを使ってPHPでメール送信
メールサーバーが立てられなかったり、無料サーバーのため使えなかったりといった場合 ...
-
PHPMailerを使ってメールをSMTP送信する方法(Composer無し)
PHPでメールをSMTP送信したかった。また、レンタルサーバだったのでCompo ...