ส่งจดหมายขยะไปยังโฟลเดอร์พิเศษโดยใช้ postfix


9

ฉันมีเซิร์ฟเวอร์ postfix ที่เรียกใช้ amavis และ SpamAssassin เพื่อช่วยกรองสแปม ข้อความที่ตรวจพบว่าเป็นสแปมจะมีลักษณะเช่นนี้เมื่อส่งเข้าสู่ Maildir ของผู้ใช้:

จาก tom @ tom-mint ศ. 15 มี.ค. 01:46:20 2013
Return-Path: <tom @ tom-mint>
X-Original-To: tom@my-server.com
ส่งถึง: tom@my-server.com
X-Virus- สแกน: Debian amavisd- ใหม่ที่ my-server.com
X-Spam-Flag: ใช่
คะแนน X-Spam-6.463
ระดับ X-Spam: ******
X-Spam-Status: ใช่คะแนน = 6.463 tagged_above = 2 จำเป็น = 6.31
    การทดสอบ = [DRUGS_ERECTILE = 2.221, FH_FROMEML_NOTLD = 0.18,
    FSL_HELO_NON_FQDN_1 = 0.001, HELO_NO_DOMAIN = 0.001, RCVD_IN_PBL = 3.558,
    RDNS_DYNAMIC = 0.363, TO_NO_BRKTS_DYNIP = 0.139] autolearn = ไม่
วันที่: ศุกร์, 15 มีนาคม 2013 01:46:19 -0400
ถึง: tom@my-server.com
เรื่อง: *** สแปม *** สวัสดี
ตัวแทนผู้ใช้: Heirloom mailx 12.5 6/20/10
ประเภทเนื้อหา: ข้อความ / ธรรมดา; charset = ASCII สหรัฐอเมริกา
จาก: tom @ tom-mint (Tom)
สถานะ: RO

ซื้อไวอากร้าบ้าง!

หมายเหตุเฉพาะเรื่องซึ่งได้รับ***SPAM***การต่อX-Spam-Flag: YESท้ายด้วยและส่วนหัว

วิธีที่ดีที่สุดในการกำหนดค่าpostfixเพื่อเก็บข้อความเหล่านี้ในโฟลเดอร์ขยะพิเศษคืออะไร

จากการวิจัยของฉันดูเหมือนว่าฉันจะต้องใช้เครื่องมือส่งจดหมายที่แตกต่างจาก postfix เพื่อทำสิ่งนี้ แต่ฉันไม่แน่ใจว่าวิธีใดดีที่สุด ดูเหมือนว่าจะมีข้อมูลเก่า ๆ มากมายและฉันสงสัยว่า postfix สามารถวางข้อความลงในโฟลเดอร์ได้หรือไม่

ไดเร็กทอรีเมลคือ Maildir ทั้งหมด


ดูเหมือนว่ามันอาจจะมีความจำเป็นที่จะใช้สิ่งที่ต้องการmaildrop ฉันยังคงมองหาวิธีในการทำเช่นนี้กับ MDA เริ่มต้นของ Postfix ดังนั้นฉันจึงสามารถเก็บชื่อแทนและคุณลักษณะ postfix อื่น ๆ ที่มีปัญหาน้อยที่สุด ฉันจะโพสต์คำตอบของฉันเมื่อฉันมากับมัน
Tom Marthenal

คำตอบ:


8

คร่าวๆของหน้าคนงานตัวแทนจัดส่งในท้องถิ่นของ postfix (8) ไม่แสดงความสามารถประเภทนี้ - อย่างที่คาดไว้ งานประเภทนี้มักจะถูกถ่ายไปที่ procmail (อาจผ่านทาง mailbox_command directive) ซึ่งสามารถจัดการงานที่คุณอธิบายได้ในขณะที่จัดการอ่างครัวของคุณอยู่ด้านข้าง ข้อเสียของ procmail คือรูปแบบไฟล์กำหนดค่าความยืดหยุ่นและตัวอย่างที่พบได้ง่าย ถ้ามีอะไรที่ดีไปกว่า procmail เพิ่งเกิดขึ้นฉันก็ไม่รู้

สำหรับเงินของฉันแม้ว่าฉันจะพบวิธีที่จะทำรองเท้า MTA ในการทำสิ่งที่คุณต้องการฉันจะไม่ไปตามถนนสายนั้นเพราะการเรียงลำดับจดหมายแบบนี้มีวิธีการทำให้สบายและไม่มี MTA (ที่ฉันรู้: บางทีการแลกเปลี่ยนอาจทำได้ใครจะรู้) สามารถทำหน้าที่ได้ดีในการเป็นตัวจัดการข้อความ / ตัวแทนการจัดส่งที่ยืดหยุ่น

นี่คือสูตร procmail ที่ทำในสิ่งที่คุณต้องการโดยยึดตามเนื้อหาส่วนหัว (โดยที่ DEFAULT คือไดเร็กทอรีการจัดส่งซึ่งมักจะเป็น $ HOME / Mail /):

:0
* ^X-Spam-Flag: YES
$DEFAULT/.Spam/

แก้ไข: (ซึ่งถือว่าเป็นรูปแบบกล่องจดหมาย maildir ดังที่ระบุไว้ในความคิดเห็นด้านล่างงดเครื่องหมายทับสุดท้ายหากใช้ mbox)


$DEFAULT/ไม่จำเป็น. มีประโยชน์สำหรับการอ่านของมนุษย์ นอกจากนี้โปรดทราบว่าการเพิ่มเครื่องหมายสแลชในตอนท้ายจะสร้าง Maildir หากใช้ Mbox ให้ข้ามเครื่องหมายทับ (ดู: unix.stackexchange.com/a/132658/241396 )
Jari Turkia

5

แบบฟอร์มชีวิตของคนต่างด้าวกล่าวว่านี่เป็นงานสำหรับ procmail นี่ไม่ใช่การแทนที่เอเจนต์การจัดส่งในท้องถิ่นของเซิร์ฟเวอร์อีเมล มันเป็นกระบวนการที่แยกต่างหากซึ่งจะถูกเรียกใช้หลังจาก MDA ทำงานเสร็จแล้ว

ผู้ใช้แต่ละคนที่ต้องการมี procmail เรียงลำดับจดหมายของพวกเขาจะต้องสร้างไฟล์ที่เรียกว่า.forwardในไดเรกทอรีบ้านของพวกเขา ไฟล์นั้นควรมีสิ่งต่อไปนี้:

"|exec /usr/local/bin/procmail || exit 75"

พร้อมด้วย"เครื่องหมายและทั้งหมด

ALF ได้โพสต์.procmailไฟล์พื้นฐานที่จะจัดเรียงจดหมายที่ติดแท็กด้วยสแปมลงในโฟลเดอร์แยกต่างหาก


1
โปรดทราบว่าในบางกรณี procmail อาศัยอยู่ที่ / usr / bin / procmail เพื่อคิดออกว่ามันอยู่ที่ไหนในระบบของคุณทำงานwhich procmail
Malfist

4

ตัวแทนจัดส่งจดหมายของคุณคืออะไร (ดู main.cf mailbox_command) หาก MDA เป็น dovecot จะรองรับ Sieve IETF standard (rfc5228) ซึ่งสามารถทำได้มากกว่า procmail โดยไม่เปิดเผยช่องโหว่ความปลอดภัยที่เป็นไปได้ อย่าโบยบน procmail ถึง postfix / dovecot ตะแกรงจะถูกรวมเข้าด้วยกันอย่างสมบูรณ์ หากคุณกำลังใช้ Courier ดังนั้น procmail นั้นเป็นวิธีที่ไม่เป็นปัญหา อย่างไรก็ตามคุณจะพบโปรแกรม sieve / sievec จาก Pigeonhole ให้เร็วขึ้นและสะอาดขึ้น

ต่อไปนี้เป็นสคริปต์ตะแกรงง่าย ๆ ในการจดจำส่วนหัวของสแปมและใส่ข้อความลงในไฟล์ถังขยะ

require "fileinto";

if header :comparator "i;ascii-casemap" :contains "Subject" "**SPAM**"  
{
  fileinto "Trash";
  stop;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.