関数型でSMTP送信
2008/08/02
SMTP送信のメリット
qd_send_mailの一番の特徴は、関数型なのに、SMTP送信できる点です。SMTP送信を選択すると、phpのmail関数は使いません。
外部SMTPサーバーを指定しておけば、開発環境と運用環境が異なる時にも、コード変更なしで対応できるほか、そもそもメール送信サーバーがない環境でメールを送信することができます。
- 可搬性がよい
- スピードが速い
- mail関数、送信サーバーのクセを排除できる(より安全なコードを書くことができる)
サンプルコード
テキストメール&添付ファイルの場合
OP25制限があるプロバイダに、SMTP認証(Plain)で繋ぐ例です。通常の送信ポート25でも大丈夫ですし、POP Before SMTPもできます。
SMTPパラメーターの詳しい設定の仕方はQdsmtpの初期設定をご覧下さい。
qdmail.php と Qdsmtp.php をインクルードパスが通ったディレクトリに置いてください。QdmailはQdsmtpを自動的にインクルードしますが、この自動インクルードがうまくいかない場合は、ユーザーにて明示的にインクルードしてください。
require_once('qdmail.php'); $param = array( 'host'=>'smtp.example.com', 'port'=> 587 , 'from'=>'return_path_address@example.com', 'protocol'=>'SMTP_AUTH', 'user'=>'userID_for_SMTP_server', 'pass' => 'password', ); $to = array( 'address@mail456.com' , '宛先日本語名' ); $from = array( 'from@example.com' , '送り元日本語名' ); $subject = 'メールのテスト(テキスト)'; $body = "ここに本文を書きます。"; $attach = array( 'test.jpg' , '添付ファイル名.jpg' ); $option = array('type'=>'text','smtp'=>$param); $flag =qd_send_mail( $option , $to , $subject , $body , $from , $attach , $debug);$optionのキー'type'で、メールの種類を指定します。
HTMLメールを送信する場合は次のようにします。
$option = array('type'=>'html','smtp'=>$param);
デコメール(デコレーションメール)を送信する場合は次のようにします。
$option = array('type'=>'deco','smtp'=>$param);
その他の指定は、関数型の基本をご参照ください。