PHPでメールを送信する場合、mail関数やmb_send_mail関数、PEARのMailクラスを使う方法があると思いますが、なにやらいろいろ面倒そうだったのでQdmailというライブラリを使ったらとても簡単だったので、簡単に紹介します。
QdmailとQdsmtpを入手
ライブラリ本体であるQdmailとQdsmtpを入手します。
■Qdmailのダウンロード(クリックするとダウンロードできます)
http://hal456.net/public/image/qdmail/200804/qdmail.1.2.6b.zip
qdmail.1.2.6b.zipを解凍するとqdmail.phpというファイルがありますのでそれを使用します。
■Qdsmtpのダウンロード(クリックするとダウンロードできます)
http://hal456.net/public/image/qdsmtp/200804/qdsmtp.0.2.0a.zip
qdsmtp.0.2.0a.zipを解凍するとqdsmtp.phpというファイルがありますのでそれを使用します。
ちょっとだけ修正
使い方によってはなにやらエラーになったりする事例があるようなのでqdmail.phpの一部を修正します。
①340行目のplainとhtmlを入れ替えてplainを前に持ってきます。
これを
1 2 3 4 5 |
'multipart/alternative'=>array( 'html' => 1, 'plain' => 1, 'OMIT' => true, ), |
このように修正します。
1 2 3 4 5 |
'multipart/alternative'=>array( 'plain' => 1, 'html' => 1, 'OMIT' => true, ), |
②429行目のiPhoneのアドレスを修正します。
これを
1 |
'i.softbank.ne.jp' => 'SB', |
このように修正します。
1 |
'i.softbank.jp' => 'SB', |
送信例
具体的なコード例は以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
require_once('qdmail.php'); require_once('qdsmtp.php'); //Qdmailオブジェクト生成 $mail = new Qdmail(); //メール送信設定 $mail -> errorDisplay( false ); $mail -> smtp(true); $param = array( //メールサーバ 'host'=>'hogehoge.mail.jp', //SMTP_AUTHの場合。認証なしなら25で良いかと。 'port'=> 587 , //fromアドレス 'from'=>'from@hogehoge.mail.jp', //認証が必要ない場合は’SMTP' 'protocol'=>'SMTP_AUTH', //SMTPサーバのユーザID 'user'=>'from@hogehoge.mail.jp', //SMTPサーバの認証パスワード 'pass' => 'smtp_auth_password' ); $mail -> smtpServer($param); //送信先をセット $to[] = array('to1@example.com', '宛先1の名称(日本語可)'); $to[] = array('to2@example.com', '宛先2の名称(日本語可)'); $to[] = array('to3@example.com', '宛先3の名称(日本語可)'); $mail -> to($to); //件名をセット $mail ->subject('件名'); //送信元をセット $mail -> from('from@hogehoge.mail.j’,’送信元名称(日本語可)'); //メール本文(テキストメール) ※HTMLメールの場合は$mail ->html(‘<タグ><タグ>'); $mail ->text('メール本文'); //添付ファイル(必要あれば) $attach[] = array('/etc/upload/attachfile.txt', '添付ファイル名称1'); $attach[] = array('/etc/upload/attachfile.png', '添付ファイル名称2'); $mail -> attach ( $attach ); //メールを送信 $return_flag = $mail ->send(); if(!$return_flag){ //メール送信エラー時 $message = print_r($mail->errorStatment(false),true); } |
※cc,bcc,reply-toは次のように指定します。
1 2 3 |
$mail -> cc('cc_address@example.com', '宛先ccの名称(日本語可)'); $mail -> bcc('bcc_address@example.com'); $mail -> replyto('reply_address@example.com', '返信先の名称(日本語可)'); |
以上です。PHPのmail関数やmb_send_mail関数を使用するよりはるかに簡単に添付ファイルなども送信できる点は非常に便利かと思います。ライブラリの使用に制限等がない開発であれば使用してみてはいかがでしょうか。