勉強したことのメモ

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

  関連記事

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

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

DTIのVPSにCakePHPを導入する方法

他社さんと連携して仕事をする際に「フレームワーク何か使いますか?」と聞かれて「使 ...

PHPで配列のキーの最大値を取得する方法

配列のキーに整数値が入っていて、その中から最大値を取得したいケースがあった。調べ ...

ユーザーエージェントなどユーザー情報を取得する方法

上からUA、IP、ホスト名を取得。 $ua = $_SERVER['HTTP_U ...

複数の方法で301リダイレクト

サイトのディレクトリやファイル名を大幅に変えるという案件があった。それ自体は問題 ...

PHPでユニークな文字列の作成

PHPでユニークな文字列を作成したかった。MySQLとかのオートインクリメントの ...

PHPにて自動でファイルを呼び出す(auto_prepend_file)

設定ファイルとかをinclude('config.php')みたいに、 いちいち ...

PHPでのcookie

aaa.comにログインフォームがあって、IDパスを入れて ログインするとbbb ...

PHPでif文とswitch文

ずっとif文を使っていたけどswitch文の方が速いみたい。 あとずらずら~とi ...

PHPでのend~~について

endforとかendifとか使いたかったけど、構文の書き方が 分からなかったの ...