Tôi có bot trả lời người dùng. Nhưng đôi khi khi bot của tôi gửi trả lời, người dùng hoặc nhà cung cấp email của họ sẽ tự động trả lời (thư nghỉ, thư bị trả lại, lỗi từ thư gửi-daemon, v.v.). Đó là sau đó một tin nhắn mới từ người sử dụng (vì vậy bot của tôi nghĩ) rằng nó lần lượt trả lời. Vòng lặp thư!Cách tạo bot email trả lời người dùng không trả lời tự động trả lời và tự đăng nhập vào các vòng lặp thư
Tôi muốn bot của mình chỉ trả lời email thực từ con người thực. Tôi hiện đang lọc ra email thừa nhận là ưu tiên hàng loạt hoặc từ danh sách gửi thư hoặc có tiêu đề Tự động gửi bằng "tự động trả lời" hoặc "được tạo tự động" (xem mã bên dưới). Nhưng tôi tưởng tượng có một cách toàn diện hơn hoặc tiêu chuẩn để giải quyết vấn đề này. (Tôi rất vui khi thấy các giải pháp bằng các ngôn ngữ khác ngoài Perl.)
NB: Hãy nhớ có bot của riêng bạn tuyên bố rằng nó tự động trả lời! Bao gồm
Auto-Submitted: auto-reply
trong tiêu đề email bot của bạn.
Mã ban đầu của tôi để tránh các vòng thư sau. Chỉ trả lời nếu realmail trả về true.
sub realmail {
my($email) = @_;
$email =~ /\nSubject\:\s*([^\n]*)\n/s;
my $subject = $1;
$email =~ /\nPrecedence\:\s*([^\n]*)\n/s;
my $precedence = $1;
$email =~ /\nAuto-Submitted\:\s*([^\n]*)\n/s;
my $autosub = $1;
return !($precedence =~ /bulk|list|junk/i ||
$autosub =~ /(auto\-replied|auto\-generated)/i ||
$subject =~ /^undelivered mail returned to sender$/i
);
}
(Vui lòng cung Chủ đề chắc chắn là không cần thiết; Tôi chỉ cần thêm những kiểm tra cùng một lúc như các vấn đề nảy sinh và ở trên bây giờ có vẻ để làm việc vì vậy tôi không muốn chạm vào nó, trừ khi có một cái gì đó dứt khoát hơn.)
Cá nhân tôi thích bot bị hạn chế theo thời gian (ví dụ: gửi email đến một người với nhiều nhất một email trong một giờ). Tôi không thích nhận được hàng tấn thông báo nghỉ khi tôi gửi nhiều email cùng một lúc. – notnoop
Điểm tuyệt vời, notnoop. Dù bạn làm gì khác, một mạng lưới an toàn giới hạn tốc độ như vậy là thông minh. – dreeves