このバンドルを使用して、返送メールの返送数に関する統計を収集します。未送信メールが送信者に返送されました。
他のサイトでは、たとえば、ユーザーに割り当てられたメールボックスにコンテンツを送信することでコンテンツを公開するなど、同様の機能に出会いました。
方法
- まず、動作するメールサーバーがあることを確認します。
サブドメインに別のメーラーを作成し、DNSに2つのエントリを作成できます。
rob.mydomain.ru. A ip-- rob.mydomain.ru. MX rob.mydomain.ru.
- エイリアス/ etc /エイリアスを使用してファイルを編集します。
そこに行を追加します:
robot: "|php -q ///.php"
robot
はメールボックスの名前です。
///.php
着信///.php
を処理するスクリプト。
編集後、newaliases
コマンドを実行しnewaliases
- 後置設定で、
main.cf
はパラメーターの追加を推奨します:
recipient_delimiter = +
次に、アドレスで追加情報をエンコードすることができます:robot+someId@rob.mydomain.ru
そのような住所への手紙もすべて、スクリプトによって処理されます。
someId
は、ユーザーIDまたはその他のデータをsomeId
できます。
- スクリプトメッセージハンドラーを作成します。
<?php /** * * * smtp- RECIPIENT, SENDER postfix * $_ENV; : * http://www.postfix.org/local.8.html EXTERNAL COMMAND DELIVERY */ // STDIN $msg = file_get_contents("php://stdin"); // $sender = getenv('SENDER'); // $recipient = getenv('RECIPIENT'); // list($header, $body) = explode("\n\n", $msg, 2); // Subject: From: $subject = ''; $from = ''; $headerArr = explode("\n", $header); foreach ($headerArr as $str) { if (strpos($str, 'Subject:') === 0) { $subject = $str; } if (strpos($str, 'From:') === 0) { $from = $str; } } // : $logMsg = "=== MSG ===\n"; $logMsg .= "SENDER: $sender\n"; $logMsg .= "RECIPIENT: $recipient\n"; $logMsg .= "$from\n"; $logMsg .= "$subject\n\n"; $logMsg .= "$msg\n"; file_put_contents('/tmp/inb.log',$logMsg, FILE_APPEND);
- robot@rob.mydomain.ruに電子メールを送信し、ログ/tmp/inb.logを調べます