Tôi có cùng một vấn đề, tình huống chính xác. Theo mặc định, máy chủ thư của tôi đang gửi tất cả thư đã trả về của tôi tới cùng một tài khoản mà nó được gửi ban đầu, với thư tự động "Gửi thư không thành công: trả lại thư cho người gửi".
Tôi không thực sự muốn biết tại sao nó được trả lại, có rất nhiều thư giao dịch mà tôi chỉ muốn loại bỏ những cái xấu. Không có thời gian để kiểm tra quy tắc cụ thể như Doestn Exist, Unavailable, vv ,,, Chỉ muốn gắn cờ để xóa và tiếp tục.
Thư bị trả lại quá tầm thường khi bạn cần xử lý nhiều loại máy chủ và phản hồi khác nhau. Mỗi phần mềm chống spam hoặc kịch bản hệ điều hành có thể gửi một mã lỗi khác với email bị trả về.
tôi khuyên bạn nên đọc và tải về phiên bản này cố định sửa lỗi của Xử bật Email - SỬ DỤNG PHPMailer-BMH VÀ AUTHSMTP từ KIDMOSES đây http://www.kidmoses.com/blog-article.php?bid=40 nếu bạn muốn thiết lập IMAP và và gửi tiêu đề tùy chỉnh của riêng bạn, gửi cho bạn [email protected] và sau đó cắt các ngón tay của bạn để xem tập lệnh có bắt được tiêu đề bạn đã gửi được viết bằng thư bị trả lại hay không. Tôi đã thử nó, hoạt động.
Nhưng nếu bạn muốn theo dõi bản sửa lỗi nhanh chóng và dễ dàng của tôi đã giải quyết được vấn đề của tôi, đây là bí mật.
1 - Tải về phiên bản tốt hơn từ trang web KIDMOSES hoặc từ trang web của tôi, chỉ trong trường hợp KIDMOSES muốn di chuyển ở một nơi khác http://chasqui.market/downloads/KIDMOSES-phpmailer-bmh.zip
2 - Các biến có chứa nội dung của email trở lại của bạn là $ cơ thể và bản thân chứa email trả về không hợp lệ (SO ITS AN ARRAY MULTIDIMENSIONAL ARRAY). (Cũng chứa các thư của máy chủ và các thư DNS khác của bạn, nhưng chúng tôi đang tìm kiếm BAD MAIL BOUNCED.)
3 - Vì DỊCH VỤ RIÊNG của bạn đang gửi lại cho bạn email bị trả về, nó không thể thay đổi định dạng của nó trong trường hợp của tôi luôn là mẫu định dạng giống nhau. (Trừ khi bạn thay đổi hệ thống hoặc nhà cung cấp)
4 - Chúng tôi xem xét rằng $ body và tìm kiếm tất cả biến chuỗi email và trích xuất chúng định vị chúng thành một mảng hai chiều hai chiều được gọi là $ khớp với
5 - Chúng tôi chọn vị trí mảng, bằng cách in mảng bằng cách sử dụng print_r (mảng_values ($ đối sánh));
6 - Đây là mã mà bạn cần sửa đổi. Dòng 500 của nó từ class.phpmailer-bmh.php tệp
// process bounces by rules
$result = bmhDSNRules($dsn_msg,$dsn_report,$this->debug_dsn_rule);
} elseif ($type == 'BODY') {
$structure = imap_fetchstructure($this->_mailbox_link,$pos);
switch ($structure->type) {
case 0: // Content-type = text
$body = imap_fetchbody($this->_mailbox_link,$pos,"1");
$result = bmhBodyRules($body,$structure,$this->debug_body_rule);
//MY RULE IT WORKS at least on my return mail system..
$pattern = '/[a-z0-9_\-\+][email protected][a-z0-9\-]+\.([a-z]{2,3})(?:\.[a-z]{2})?/i';
preg_match_all($pattern, $body, $matches);
//print_r(array_values($matches)); //To select array number of bad returned mail desired, usually is 1st array $matches[0][0]
echo "<font color = red>".$matches[0][0]."</font><br>";
break;
Vì vậy, chúng tôi quên tiêu đề trả về và tập trung vào email xấu. Bạn có thể vượt trội chúng, bạn có thể MySQL chúng, hoặc xử lý bất cứ điều gì bạn muốn làm.
QUAN TRỌNG Nhận xét echos trong callback_echo.php trong thư mục mẫu nếu không bạn sẽ nhận được tất cả rác trước khi in.
function callbackAction ($msgnum, $bounce_type, $email, $subject, $xheader, $cheader, $remove, $rule_no=false, $rule_cat=false, $rule_msg='', $totalFetched=0) {
$displayData = prepData($email, $bounce_type, $remove);
$bounce_type = $displayData['bounce_type'];
$emailName = $displayData['emailName'];
$emailAddy = $displayData['emailAddy'];
$remove = $displayData['remove'];
//echo "<br>".$msgnum . ': ' . $rule_no . ' | ' . $rule_cat . ' | ' . $bounce_type . ' | ' . $remove . ' | ' . $email . ' | ' . $subject . ' | ';
//echo 'Custom Header: ' . $cheader . " | ";
//echo 'Bounce Message: ' . $rule_msg . " | ";
return true;
}
OUTPUT MY
Connected to: mail.chasqui.market ([email protected])
Total: 271 messages
Running in disable_delete mode, not deleting messages from mailbox
[email protected]
...
[email protected]
Closing mailbox, and purging messages
Read: 271 messages
0 action taken
271 no action taken
0 messages deleted
0 messages moved
u có nghĩa là, tôi tạo ra một thư mục, lưu trữ tất cả email theo [email protected] Sau đó, viết một tập lệnh php, kiểm tra thư mục đó định kỳ và kiểm tra mã lỗi? –
không ... tạo id mới [email protected] Cung cấp các chi tiết email cho tập lệnh php và làm cho nó chạy định kỳ bằng cách sử dụng cron. PHP có thể được sử dụng để mở các tài khoản pop 3 (kiểm tra mã trên). Không cần lưu trữ email. Kịch bản của bạn nên acutomaticaly mở hộp thư và xử lý các email mới. – Shoban
Đó là lý do tại sao tôi cần một thủ tục, tôi hoàn toàn mới để xử lý điều email bị trả lại này. Tôi thậm chí không thể bắt đầu từ đâu, làm cách nào để "cung cấp chi tiết email cho tập lệnh php"? Tôi cần giúp đỡ ... giúp đỡ tôi ... –