3
我想轉發我反彈的電子郵件到一個PHP腳本來處理它們。我在用。用php腳本收集TO字段的電子郵件管道?
#!/usr/bin/php -q
<?php
// read from stdin
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);
// handle email
$lines = explode("\n", $email);
// empty vars
$from = "";
$subject = "";
$headers = "";
$message = "";
$splittingheaders = true;
for ($i=0; $i < count($lines); $i++) {
if ($splittingheaders) {
// this is a header
$headers .= $lines[$i]."\n";
// look out for special headers
if (preg_match("/^Subject: (.*)/", $lines[$i], $matches)) {
$subject = $matches[1];
}
if (preg_match("/^From: (.*)/", $lines[$i], $matches)) {
$from = $matches[1];
}
} else {
// not a header, but message
$message .= $lines[$i]."\n";
}
if (trim($lines[$i])=="") {
// empty line, header section has ended
$splittingheaders = false;
}
}
?>
完美的作品!但是,如何收集退回郵件中的「收件人」字段?我試着添加一個$ to變量,但它不起作用。
任何幫助將是巨大的,
感謝,
編輯:其實我需要得到消息的正文中的「收件人」字段。 - 它彈回的電子郵件。我如何拆開消息的主體以獲取特定信息?我應該使用該人的電子郵件創建一個特殊的標題,以便獲取此信息更容易?
你需要知道它在消息體中的外觀,然後用正則表達式來獲取它。 – Alasdair 2012-02-05 09:55:26
有時更可靠的另一種選擇是發送具有唯一返回路徑的每條消息。通過這種方式,您可以根據消息被反彈到的電子郵件地址確切地知道哪些消息會返回給您。 – 2012-02-06 09:27:48