▼ 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は、ご自分のスクリプトにインクルードするだけなので、とっても簡単です。
テストしたサーバー
タイムアウトについて
# 2012年12月10日(月) 午後8時56分
tset
# 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/