PHPMailerを日本語で便利に使うラッパークラス
NPHPMailerは、日本語メールをPHPMailerで送信する際に設定するべき「内部エンコーディング」や「文字コードの指定」を内部で設定してくれるラッパークラスです。また、チェーンメソッドを利用して送信できるので、コード量を少なくしてくれます。
以下の形でメールを送信する。
use OkutaniT\NPHPMailer;
NPHPMailer::_()
#->setSMTP(ホスト, ユーザー, パスワード) // サーバーで設定していたら不要
->setFrom(差出人)
->addAddress(宛先)
->setSubject(件名)
->setBody(内容)
->send();
具体的には、次のように利用する。
use OkutaniT\NPHPMailer;
$from = "from@example.com";
$to = [
"myaddress@example.com"
];
$reply = $_POST["email"];
$mySubject = "お問い合わせがありました";
$myBody = "名前: " . $_POST["name"] . "\n" .
"メールアドレス: " . $_POST["email"];
$toSubject = "[自動返信]お問い合わせありがとうございます";
$toBody = "以下の内容でメールを送信しました。\n\n" .
"名前: " . $_POST["name"] . "\n" .
"メールアドレス: " . $_POST["email"] . "\n" .
"今後ともよろしくお願いいたします。";
// 自分宛
NPHPMailer::_()
->setSMTP("smtp.gmail.com", "〇〇@gmail.com", "Gmailのパスワード") # gmailの場合
->setFrom($from)
->addAddress($to)
->setSubject($mySubject)
->setBody($myBody)
->send();
// 相手宛(自動返信用)
NPHPMailer::_()
->setSMTP("smtp.gmail.com", "〇〇@gmail.com", "Gmailのパスワード")
->setFrom($from)
->addAddress($reply)
->setSubject($toSubject)
->setBody($toBody)
->send();
HTMLメールを利用する場合は以下のメソッドを利用します。
->isHTML(true)
添付ファイルは以下のメソッドを使います。
->addAttachment(ファイルパス, ファイル名, エンコーディング, MIMEタイプ)
CC, BCCは以下。
->addCC(アドレス, 名前)
->addBCC(アドレス, 名前)
文字コードを変更する場合は以下。デフォルトはUTF-8。
->setCharSet("ISO-8859-1")
エンコードを変更する場合は以下。デフォルトはbase64。
->setEncoding("8bit")
SMTPデバッグモードを利用したい場合は以下。
->setSMTPDebug(true)
composerを使って導入する。ちなみに、NPHPMailer導入時に最新版のPHPMailerが導入されるので、PHPMailerの記述はいらない。
composer.jsonに以下を記述。
{
"require": {
"okutani-t/nphpmailer": "~1.0"
}
}
composer installで導入。
$ composer install
あとは使いたい場所でrequire&useしてあげればOK。
<?php
require __DIR__ . "/vendor/autoload.php";
use OkutaniT\NPHPMailer;
// code...
バグを見つけた場合や追加実装をおこなう場合、以下の手順でプルリクエストを送ってください。
1. フォーク&クローン
2. ブランチを切る
$ git checkout -b my-new-feature
3. 変更をコミット
$ git add .
$ git commit -m "修正内容"
4. テスト
$ composer test tests
なお、テスト内容は tests/
以下に記述してください。
5. プルリクエストを作成
LGPL-2.1