ようこそゲストさん

Qdsmtp-Simple SMTP Mailer for PHP

CakePHPコンポーネントとして使う

Qdsmtpは、通常のライブラリの他、CakePHPのコンポーネントとしても動作します。
単体で使用することもできますし、Qdmailと組み合わせると力をもっと発揮します。

初期設定

/app/controllers/conponents/
にファイルを置いてください。

使いたいコントローラーで、
var $conponentes = array( 'Qdsmtp' );
とするだけ。

すると
$this->Qdsmtp->mail(・・・・・);
とするだけで、標準mail関数を使わない、SMTP送信ができます。

Qdmailと組み合わせて使う

明示的に$conponentes = array( 'Qdsmtp' );としなくても、Qdmailが勝手に読み込んでくれます。*1

使用例

$param = array(
	'host'=>'pop.example.com',
	'port'=>'587',
	'from'=>'address@example.com',
	'user'=>'postmaster@example.com',
	'pass' => 'password',
	'protocol'=>'SMTP_AUTH',
);

$this->Qdmail->to('to_address@example.com');
$this->Qdmail->subject('メールのテスト');
$this->Qdmail->from('from@example.com');

$this->Qdmail->smtp(true);
$this->Qdmail->smtpServer($param);
$this->Qdmail -> cakeHtml('本文');

$fg=$this->Qdmail->send();

*1 : もちろん明示的に指定してもよい


#  非公開コメント   
  • TB-URL  http://hal456.net/qdsmtp/014/tb/

Qdsmtpとは

Qd Simple SMTPとは

PHPにおいて標準のmail()関数が使用できない環境であっても、手軽にメールを送れるようにするライブラリです。
具体的には、外部SMTPサーバーに接続してメールを送ります。
またSMTP送信の方が一般的には、mail()関数よりも高速動作します。

ウィンドウズ(Windows)でPHPを使用している場合でも、SMTPサーバーをインストールしなくても、このQdsmtpを使えば、mail関数ライクにメールを送信することができます。
mail関数が使えなくても、SMTP送信であれば汎用性があり、開発と運用とでコードをわける必要がほとんどありません。

特徴

  • PHP4,PHP5の両方に対応
  • 1ファイルをインクルートするだけのお手軽構成
  • mail関数風に手軽にSMTPでのメール送信が可能
  • SMTPのデータ形式でも送信可能(当たり前)
  • POP Before SMTP に対応注意点
  • SMTP AUTH (PLAINのみ)に対応
  • 持続接続で複数宛先への高速送信が可能
  • Qdmailと組み合わせて、マルチバイト日本語メール対応

使い方(目次)

共通の初期設定(SMTPサーバー設定)
簡単な使い方(mail関数ライク)
玄人的な使い方(高速動作)
オプション
ログ機能

ダウンロード

ダウンロードページ

その他

Pear:MailでもSMTP送信はできますが、Pearのインストールそのものが面倒だったり、Pearの設定が面倒だったりしませんか?
Qdsmtpは、ご自分のスクリプトにインクルードするだけなので、とっても簡単です。

テストしたサーバー
タイムアウトについて

# test 2012年12月10日(月) 午後8時56分

tset

# QDSMTPをQMAILでのSMTP送信 2013年05月27日(月) 午後4時22分

環境は
qdsmtp.0.2.0a
qdmail.1.2.6b
PHP5.1.6

過去ログ等みて、QAMILでSMTP送信する場合に「Server 451 See http://pobox.com/~djb/docs/smtplf.html.」となります。
いろいろソースをいじっていたのですが
QDSMTPの506行目
$items[] = array( 'DATA_CONTENT' , $this->smtpEscape($this->data).$this->smtpLFC . '.' );
これを
$items[] = array( 'DATA_CONTENT' ,str_replace( "\n","\r\n", ($this->data).$this->smtpLFC) . '.');
こうする事で送信できました。
他には[\r\n」部分を「\n」だけにするなど、ログにありましたが、一切行っていません。
この辺りが原因なようですが、何か分かるでしょうか?

# やまだ 2016年06月03日(金) 午前11時39分

QdSmtp error: No Responce SYSTEM TIME OUT line -> 603
QdSmtp error: getMessage error line -> 543
QdSmtp error: Error From setting line -> 488
QdSmtp error: Send Data Error or Auth Error line -> 415


#  非公開コメント   
  • TB-URL  http://hal456.net/qdsmtp/01/tb/