関数型でSMTP送信

2008/08/02 未分類 spok

SMTP送信のメリット

qd_send_mailの一番の特徴は、関数型なのに、SMTP送信できる点です。
SMTP送信を選択すると、phpのmail関数は使いません。
外部SMTPサーバーを指定しておけば、開発環境と運用環境が異なる時にも、コード変更なしで対応できるほか、そもそもメール送信サーバーがない環境でメールを送信することができます。
  1. 可搬性がよい
  2. スピードが速い
  3. 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);

その他の指定は、関数型の基本をご参照ください。