勉強したことのメモ

webプログラマが勉強したことのメモ。

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

   

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

  関連記事

地理院のジオコーディングAPIをPHPから使用する

以前に地理院のジオコーディングAPIをjavascriptからajaxでリクエス ...

preg_matchについて

PHPでのpreg_matchについて教わることがあったのでメモ。 ■参考サイト ...

htmlspecialcharsを通してMySQLに格納したものを元に戻して出力

MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...

PHPで特定のファイル内のみタイムアウトを無効にする

重たい処理をするページだけ、タイムアウトを無効にする場合のメモ。 以下をPHPフ ...

PHPで変数名を動的に変えて使う方法

変数名を動的に変えて使用したかった。 調べてみると可変変数というものがあり、希望 ...

preg_match_all

やりたかった事は、 ・JSON形式がそのまま出力されているページのデータをPHP ...

MySQLiでINSERT文

MySQLiでINSERT文 ■ソース $mysqli = new mysqli ...

MySQLで重複を除く

ユニークな値を取り出したいときに使う。 DISTINCT(ディスティンクト) S ...

includeした内容を変数に入れる

includeした内容を変数に入れる際に嵌ったのでメモ。 下記サイト様を参考にさ ...

PHPで画像を上下反転させ保存する

やりたかった事は、下記の通り。 ・既にフォルダに保存されている画像を上下反転させ ...