3

返送されたメッセージを処理し、担当のシステム管理者に送信しようとしています。

CakePHP の Email Component を使用してメッセージを送信します。サーバー側では、postfix を使用してメッセージを転送します。

function sendAsEmail($data) {
  $Email->sendAs = 'html';
  $Email->from = $user['Sender']['username'] . '@example.com';
  $Email->return = Configure::read('App.systemAdminEmail');
  $Email->bcc = array($data['Message']['recipient_text']);
  $content = 'Some content';
  $Email->send($content);
}

上記のように、$Email->return をシステム管理者のメールに設定して、すべてのバウンス メッセージを送信します。

postfix の設定で、bounce.cf テンプレートを作成して、bounce_template_file を設定してみました。http://www.howtoforge.com/configure-custom-postfix-bounce-messages

バウンスされたメッセージを取得してシステム管理者に送信するにはどうすればよいですか?

4

1 に答える 1

1

あなたがする必要があるのは、PHP用のSMTP(またはPOP3だと思います)コネクタを使用することだと思います。次に、基本的に、サーバーにログインし、バウンスされたメッセージを要求し、それらを適切に解析する独自のPHP電子メールクライアントを作成する必要があります。

このためのCakePHPコンポーネントがあると思いますが、見つかりません。

メールには封筒ヘッダーを使用することをお勧めします。そうしないと、受信者サーバーのバウンスを解析しようとしてスタックし、非常に一貫性がなくなります。VERP(可変エンベロープリターンプロトコル?)ヘッダーを使用する場合、一意のハッシュを電子メールアドレスにエンコードできます。これは、PHPEmailClientで非常に簡単に解析できるはずです。

VERPの詳細:http://en.wikipedia.org/wiki/Variable_envelope_return_path

ケーキ固有のVERPのもの: http: //www.mainelydesign.com/blog/view/setting-envelope-from-header-cakephp-email-component

また、SwiftMailerの使用を検討することを強くお勧めします。たくさんのプラグインがあります。必要なことを実行するために簡単に変更できるベースPHPSMTPクライアントが見つかる場合があります。 http://swiftmailer.org/

于 2010-06-29T16:02:53.853 に答える