Đây là giải pháp cuối cùng của tôi sau khi nghiên cứu và giúp đỡ từ @tarleb
Chuyển phát thư của tôi đã xảy ra qua sendmail
chương trình, trong đó thêm một số tiêu đề bổ sung vào email của tôi. Tôi có thể sử dụng một bộ lọc (bộ lọc thư) để lọc email đến và bỏ việc sendmail
sử dụng, tuy nhiên tôi đã quyết định đổi sang Dovecot LDA để gửi.
Bộ lọc ban đầu của tôi là, vào đầu Postfix master.cf
:
smtp inet n - - - - smtpd -o content_filter=spamassassin
Và ở cuối tập tin:
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Tôi đã thay đổi phần cuối của tệp để sử dụng phân phối cục bộ Dovecot bằng cách:
spamassassin unix - n n - - pipe
flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e
/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
Bây giờ chỉnh sửa Postfix's main.cf
và thêm (tùy chọn, kiểm tra (3) dưới đây):
spamassassin_destination_recipient_limit = 1
Bây giờ email của bạn sẽ được gửi qua Dovecot LDA mà không cần thay đổi tiêu đề. Đối với những người tò mò, đây là một số chi tiết về cấu hình của tôi:
- Cấu hình này có thể được sử dụng với các dấu phân cách địa chỉ cộng / địa chỉ phụ / người nhận (các địa chỉ email
user+nospam@example.com
sẽ được gửi vào user@example.com
hộp thư đến) - Đó là lý do tại sao tôi thêm -d ${user}@${nexthop}
điều này sẽ xóa +
và mọi thứ cho đến khi tên miền. Để kích hoạt tính năng này, hãy chắc chắn để thêm recipient_delimiter = +
vào main.cf
;
- Cờ của tôi
flags=DROhu
, họ không thêm bất cứ điều gì bất thường nhưng chúng có thể được hiểu ở đây: http://www.postfix.org/pipe.8.html ;
spamassassin_destination_recipient_limit = 1
được yêu cầu để đảm bảo rằng mọi người nhận đều được xử lý riêng lẻ bởi spamassassin. Điều này là bắt buộc do D
cờ ở trên (Bao gồm X-Original-To
tiêu đề). Nếu bạn đã D
gắn cờ và bạn không đặt spamassassin_destination_recipient_limit = 1
email với nhiều điểm đến sẽ không được gửi! Nếu bạn không quan tâm đến tiêu đề này, bạn có thể xóa cờ và điều này không cần thiết.
Chỉnh sửa: Phần thưởng nội dung - Di chuyển SPAM của bạn vào Junk
thư mục!
Bạn cũng có thể định cấu hình Dovecot để di chuyển email được phát hiện dưới dạng SPAM sang Junk
thư mục IMAP. Điều này sẽ làm cho cuộc sống của bạn dễ dàng hơn chắc chắn. Chỉ cần làm theo điều này:
Chỉnh sửa /etc/dovecot/conf.d/15-mailboxes.conf
và bỏ ghi chú / thêm Junk
thư mục với (nên ở namespace inbox
phần gần mailbox Trash
):
mailbox Junk {
special_use = \Junk
}
Cài đặt dovecot-sieve
với apt-get install dovecot-sieve
;
Chỉnh sửa /etc/dovecot/conf.d/90-sieve.conf
và nhận xét dòng:#sieve = ~/.dovecot.sieve
Chỉnh sửa /etc/dovecot/conf.d/90-plugin.conf
thành:
plugin {
sieve = /etc/dovecot/sieve/default.sieve
}
Chỉnh sửa /etc/dovecot/conf.d/15-lda.conf
và /etc/dovecot/conf.d/20-lmtp.conf
cho phù hợp:
protocol lda/lmtp { # do not copy/paste this line!
mail_plugins = $mail_plugins sieve
}
CẢNH BÁO : Bạn có thể có các cài đặt khác trong các protocol
lựa chọn, giữ chúng. Dòng protocol lda/lmtp
thay đổi trong các tập tin, giữ bản gốc.
Tạo thư mục /etc/dovecot/sieve/
Tạo tập tin /etc/dovecot/sieve/default.sieve
với nội dung này:
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
Thay đổi quyền thư mục cho người dùng và nhóm email ảo của bạn như : chown vmail:vmail /etc/dovecot/sieve/ -R
. Nếu bạn bỏ lỡ dovecot này sẽ phàn nàn!
Khởi động lại mọi thứ: service postfix restart; service dovecot restart; service spamassassin restart
Hãy thử gửi email đến một số email trên máy chủ (từ máy chủ bên ngoài), đầu tiên là một email bình thường và sau đó là một email khác với chủ đề này : XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
. Email thứ hai nên vào Junk
thư mục và email đầu tiên vào hộp thư đến của bạn.
Nếu điều này không hoạt động ở lần thử đầu tiên của bạn, hãy xem nhật ký: tail -f /var/log/mail.log
và gửi email trong khi tail
đang chạy. Một thiết lập làm việc tốt nên báo cáo stored mail into mailbox 'INBOX'
hoặc stored mail into mailbox 'Junk'
.
Received
tiêu đề nào khác , chỉ có cácX-Spam-*
tiêu đề được thêm vào ... Tại sao và như thế nào?