標準のコードイグナイターを使用する場合
mail->send()
TRUE または FALSE のみを返します。ただし、特定の SMTP リターン コードを異なる方法で処理する必要があります。デバッグ テキスト情報を解析するか、何らかの方法で Codeigniter のメール ハンドラーをオーバーライドすることができます。これを行う簡単でエレガントな方法はありますか?
前もって感謝します。
標準のコードイグナイターを使用する場合
mail->send()
TRUE または FALSE のみを返します。ただし、特定の SMTP リターン コードを異なる方法で処理する必要があります。デバッグ テキスト情報を解析するか、何らかの方法で Codeigniter のメール ハンドラーをオーバーライドすることができます。これを行う簡単でエレガントな方法はありますか?
前もって感謝します。
CodeIgniter には、このためのメカニズムが組み込まれているとは思いません。できることは、CI 電子メール クラスを拡張し、保護された_debug_msg
配列を公開する関数を追加することです。
email クラスのソースを見ると、print_debugger()
関数が_debug_msg
配列を文字列に変換していることがわかります。したがって、_debug_msg
探しているものがあれば、文字列を解析する必要はありません。
class MY_Email extends CI_Email {
public function __construct()
{
parent::__construct();
}
public get_msg()
{
if (count($this->_debug_msg) > 0)
{
return $this->_debug_msg;
}
else
{
return FALSE;
}
}
}
CI ライブラリを拡張する方法については、次のリンクを参照してください http://codeigniter.com/user_guide/general/creating_libraries.html
を使用して電子メールを送信してsendmail
いる場合は、後になるまで SMTP リターン コードを取得できない場合があります。
バウンスを取得する方法 (私は推測していますか?) はReturn-Path
、送信メールに を追加し、 が担当するメール受信ボックスを選択することです。これによりprocmail
、フィードバック メールを PHP にパイプして戻して解析することができます。
上記の詳細が必要な場合はお知らせください。