PHP 言語の qdmail ライブラリを使って、簡単にメール送信するサンプルプログラムをご紹介いたします。
目次
メール送信ライブラリ “qdmail”(PHP7 対応)
僕の経験上、PHP で最も簡単にメールを送信できるライブラリは “qdmail” だと思います。
なんといっても ライブラリ1ファイルを参照すれば メール送信できるようになります!(仕事上で最も使用しています)
※mb_send_mail という関数もありますが、メールヘッダーの内部構造まで理解しなければならない分 逆に難しく感じると思います、、
※残念ながら gmail アカウントを使用しての送信は(セキュリティの関係で?)エラーになってしまいます。
qdmail.php
qdmail のライブラリファイルで、元々 “qdmail.php” というファイルなのですが、PHP7 以降 一部エラーが発生するようになりまして…エラーが出ないように修正したバージョン “qdmail_php7.php“ を以下でダウンロードできるようにしておきます。
※動作保証の他、一切責任は負いません。お試しサンプルということでご了承ください。
※ダウンロードに危険を感じる場合には、一般のサイトから “qdmail.php” をダウンロードしてエラーを修正して使用して頂いても問題ありません。
sendEmail(オリジナル関数)
僕が作りました メール送信用のオリジナル関数を、一般公開用にカスタマイズして “qdmail_sendemail_100.php” というファイルに保存しました。以下にソースコードを公開しますが、特に理解して頂かなくても 以下からダウンロードして頂き、上記の “qdmail_php7.php” と併せて参照して頂ければ メール送信できます。
<?php
function sendEmail($strEmailTo, $strEmailSubject, $strEmailBody, $arrayAttachedFiles = NULL){
if ($strEmailTo != ""){
//言語の設定
mb_language("ja");
mb_internal_encoding("UTF-8");
$objQdmail = new Qdmail();
$objQdmail->smtp(FALSE);
if (!is_null($arrayAttachedFiles)){
$objQdmail->attach($arrayAttachedFiles);
}
$param = array(
"host"=>QDMAIL_SERVER_NAME,
"port"=>QDMAIL_PORT_NUMBER,
"from"=>array(QDMAIL_FROM_ADDRESS, mb_convert_kana(QDMAIL_FROM_ADDRESS, "KASCV", "UTF-8")),
"protocol"=>QDMAIL_PROTOCOL,
"user"=>QDMAIL_ACCOUNT,
"pass"=>QDMAIL_PASSWORD,
);
$objQdmail->smtpServer($param);
$objQdmail->to($strEmailTo, mb_convert_kana($strEmailTo, "KASCV", "UTF-8"));
$objQdmail->subject($strEmailSubject);
$objQdmail->from(QDMAIL_FROM_ADDRESS, mb_convert_kana(QDMAIL_FROM_ADDRESS, "KASCV", "UTF-8"));
if (mb_substr($strEmailBody, 0, 6, "UTF-8") == "<html>"){
$objQdmail->html($strEmailBody);
} else {
$objQdmail->text($strEmailBody);
}
if ($objQdmail->send()){
return "";
} else {
return $mail->errorStatment(false);
}
} else {
return "Email To address is empty.";
}
}
?>
本文(メール送信)
本文は以下の通りです。
7行目からの [メールサーバー設定] の箇所にメール設定内容を入力し、16行目の sendEmail 関数のパラメータを書き換えてコールすれば…メール送信できます!
<?php
//ライブラリを読み込む
require_once("lib/qdmail_php7.php");
require_once("lib/qdmail_sendemail_100.php");
//メールサーバー設定
define("QDMAIL_SERVER_NAME", "????????");//送信メール(SMTP)サーバー(例. "smtp.mail.yahoo.co.jp")
define("QDMAIL_PORT_NUMBER", ???);//送信メール(SMTP)ポート番号(例. 465)
define("QDMAIL_PROTOCOL", "????????");//SMTP認証プロトコル(例. "SMTP_AUTH")
define("QDMAIL_FROM_ADDRESS", "????????");//送信元メールアドレス(例. sample@yahoo.co.jp)
define("QDMAIL_ACCOUNT", "????????");//アカウント名(例. sample)
define("QDMAIL_PASSWORD", "????????");//パスワード
//メールを送信する
sendEmail("送信先メールアドレス", "件名", "本文");
?>
ダウンロード
上記の2つのファイル “qdmail_php7.php“, “qdmail_sendemail_100.php” を zip で圧縮しましたので、以下からダウンロードして頂けましたらと思います。
ダウンロードはこちらqdmail_php7.zip
SNS開発18年で2つのSNSを開発・運用中の当社が、あなたのアイデアを形にするお手伝いをします。