NAME
Tripletail::Sendmail::MailQueue - 独自のメールキューを使用するメール送信
SYNOPSIS
my $smail = $TL->newSendmail('SendMailQueue');
$smail->send(...);
$smail->send(...);
$smail->send(...);
$smail->process;
DESCRIPTION
送信要求されたメールを、 TripletaiL のメールキューに保存する.
キュー内に保存されたメールは、"process" 呼び出し時に一括して配送される。
METHODS
- new
 - connect
 - disconnect
 - 
何もしない。
 - setTimeout
 - 
Tripletail::Sendmail::Smtp 参照。配信時のタイムアウト時間を設定する。
 - send
 - process
 - 
$smail->process実際の配信処理を行う。一般にこのメソッドは処理に時間が掛かる為、 CGIのプロセスから直接呼ぶべきではない。
 
Ini パラメータ
- queuedir
 - 
queuedir = /home/www/mqueue/メールキューディレクトリ。
 - timeout
 - host
 - erroraddr
 - 
erroraddr = null@example.org%localhost配信エラー時にエラーメールを送るなら、その送信先を指定。
null@example.org%localhostのように使用する smtp サーバーを指定する。%以降は省略可能で、省略された場合はlocalhostとなる。 - errorlog
 - 
errorlog = 1配信エラー時にエラーログを記録するかどうか。 0の場合、保存しない。 1の場合、保存する。
 
実装
- メールキュー
 - 
メールキューのディレクトリには、queue,incoming,outgoing の3つのディレクトリが 作成済みで、同一のパーティションになければならない。
メールは、1行目にエンベロープFrom、2行目以降にエンベロープToが1行1アドレスで あり、空行を挟み、その後に本文データが続く。改行コードは
\r\nとする。 - 送信時 (Tripletail::MailQueue)
 - 
新規にキューにメールを入れる場合は、incoming ディレクトリ内に作成してから queue へ rename(2) する。ファイル名は、時刻、プロセスID等を使い、 ユニークになるようなものとする。
 - 配信時 (mailqueue-process)
 - 
メールを処理するときは,outgoing に rename してから処理を行い、終わったら
rmする。rename(2)する際、ファイル名の末尾に「.」とプロセスIDを記述する。メールを定期的に調査し、設定されたMTAへSMTPで送信を行う。failure の場合は 指定アドレスにメールを送るか、ログに書き込む(設定で変更可能)。deferral の場合は queue ディレクトリに rename(2) で戻す。末尾の .$pid は削除する。
 - 修復 (mailqueue-recover)
 - 
プロセスが存在しないのに、outgoing にファイルがある場合は、deferral として queue ディレクトリにrename(2) で戻す。末尾の .$pid は削除する。
プロセスが存在しないのにincomingにファイルがある場合は、それを削除する。
 
SEE ALSO
AUTHOR INFORMATION
Copyright 2006 YMIRLINK Inc.
This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself
このフレームワークはフリーソフトウェアです。あなたは Perl と同じライセンスの 元で再配布及び変更を行うことが出来ます。
Address bug reports and comments to: tl@tripletail.jp
HP : http://tripletail.jp/