プログラミング基礎知識

PHP で簡単にメール送信するプログラム(サンプルコード付き)

PHP 言語を使って、簡単にメール送信する手法をご紹介します。

メール送信ライブラリ “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
プログラミング相談受付中

自営エンジニア歴 20年以上の 当ブログ作者が、プログラミングに関するオンライン相談(zoom 等)を受付中です。言語は HTML CSS JavaScript jQuery PHP MySQL VBScript など…

詳細・お問い合わせはこちら