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で正常に受信でき、文字化け等も無かった。
所感
動作テストでは特に問題は見受けられなかったが、運用していくと恐らく文字化けとかの問題に遭遇しそうな気がする。気を付けるところをまとめた記事もあるようなので困ったときは参考にする。
参考サイト
関連記事
-
-
地理院のジオコーディング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で画像を上下反転させ保存する
やりたかった事は、下記の通り。 ・既にフォルダに保存されている画像を上下反転させ ...