Score:0

procmail เขียนหัวเรื่องใหม่หากผู้ใช้ผู้รับอีเมลไม่ผ่านการทดสอบการจับคู่

ธง in

ฉันมีผู้ใช้ procmail ในเครื่อง "bob"

หากอีเมลมาถึงและตรงกับ [email protected] ก็ไม่ควรดำเนินการใดๆ

อย่างไรก็ตาม หากอีเมลมาถึงและเป็น [anything_else]@domain.com ฉันต้องการเขียนบรรทัดเรื่องใหม่โดยใส่ "[สแปม]" ที่ด้านหน้าของบรรทัดเรื่อง

ดังนั้นจึงเป็นการจับคู่แบบย้อนกลับกับ "bob@" (จับคู่กับอย่างอื่นที่ไม่ใช่ bob@) และเราคงบรรทัดเรื่องเดิมไว้ โดยเพิ่ม "[spam]" ข้างหน้า

ฉันจะทำเช่นนั้นกับ Procmail ได้อย่างไร

Score:1
ธง ar

ข้อกำหนดของคุณค่อนข้างไม่ชัดเจน Procmail สามารถจับคู่กับสตริงใดก็ได้ แต่คุณต้องการมองหาสตริงที่ใดก็ได้ในข้อความจริงๆ หรือไม่ และคุณตั้งใจที่จะเพิกเฉยต่อข้อความโดยไม่ โดเมน.คอม ในพวกเขาเพื่อวัตถุประสงค์ของกฎนี้?

:0 HB
* ! ()\<bob@domain\.com\>
* @โดเมน\.com\>
{
    :0fhw
    * ^หัวเรื่อง:\/.+
    | formail -I"เรื่อง: [สแปม]$MATCH"
}

เดอะ \< และ \> ขอบเขตของคำป้องกันการจับคู่กับสตริงย่อยเช่น หลุมฝังศพ หรือ subdomain.combent.orgและวงเล็บว่างนั้นเป็นแฮ็กเพราะ Procmail นั้นแปลกเกี่ยวกับ regexes ที่ขึ้นต้นด้วยเครื่องหมายแบ็กสแลช

หากคุณหมายความว่าคุณต้องการดูเฉพาะส่วนหัว ให้ปล่อย HB จากบรรทัดทวิภาคแรก (คุณสามารถเว้น ชม แต่นั่นเป็นค่าเริ่มต้นหากคุณไม่ใส่ค่าสถานะใดๆ) หากคุณต้องการจับคู่ส่วนหัวที่เฉพาะเจาะจง ให้สะกดคำนั้น หากคุณต้องการตรวจสอบผู้รับโดยเฉพาะ ^ถึง_ มาโครให้คุณทำได้ในส่วนหัวที่แตกต่างกัน (ถึง:, สำเนา:ฯลฯ) ได้อย่างง่ายดาย

:0fhw
* ! ^TO_bob@domain\.com\>
* ^TO_[^<>@ ]+@โดเมน\.com\>
* ^หัวเรื่อง:\/.+
| formail -I"เรื่อง: [สแปม]$MATCH"

เพราะเราทำตก HB แฟล็ก เราสามารถรวมสิ่งที่เคยเป็นสองสูตรก่อนหน้านี้กับแฟล็กที่ต่างกันได้ ที่สอง ^ถึง_ ตรวจสอบที่อยู่ใด ๆ รวมถึง บ๊อบซึ่งถูกแยกออกจากเงื่อนไขเมื่อถูกปฏิเสธก่อนหน้านี้แล้ว

เรื่องนี้ยังมีบางมุมที่อาจต้องศึกษาเพิ่มเติม หากคุณสามารถแก้ไขคำถามของคุณเพื่อชี้แจงได้ บางทีฉันสามารถอัปเดตสิ่งนี้ให้ครอบคลุมมากกว่าพื้นฐาน

SMTP ไม่จำเป็นต้องสะกดชื่อผู้รับในส่วนหัว กรณีคลาสสิกคือ สำเนาลับ: ซึ่งเป็นกลไกหลักที่ใช้โดยรายชื่อผู้รับจดหมายจำนวนมาก บางที MTA ของคุณอาจสะกดผู้รับใน ส่งถึง: แต่พูดให้ถูกคือ ตัวกรองประเภทนี้มีการใช้งานที่ดีกว่าใน MTA แทน

user227963 avatar
in flag
ไม่ ฉันไม่ได้ตั้งใจจะมองหาสตริงที่ใดก็ได้ในข้อความ - เพียงแค่ในช่อง TO ... ดังนั้นหาก TO ตรงกับ [email protected] ก็ไม่ต้องดำเนินการใดๆ แต่ถ้าฟิลด์ TO เป็นอย่างอื่น ฉันต้องการเขียนหัวเรื่องใหม่ด้วยคำว่า [SPAM] ที่จุดเริ่มต้น เข้าท่า ?
tripleee avatar
ar flag
อะไรก็ได้ หรือผู้รับรายอื่นในโดเมนเฉพาะนี้ เหมือนกับคำถามของคุณหรือไม่ ตัวอย่างที่สองแสดงให้คุณเห็นถึงวิธีการทำเช่นนี้แล้ว
user227963 avatar
in flag
ฉันทดสอบตัวอย่างที่สองและใช้งานได้ดีมาก - แม้ว่าจะมีสิ่งหนึ่ง ... หากหัวเรื่องว่างเปล่า มันจะว่างเปล่า - มันไม่ได้ถูกเขียนใหม่ ...
tripleee avatar
ar flag
คุณสามารถเปลี่ยน `.+` สุดท้ายในเงื่อนไข Subject: เป็น `.*` เพื่อจับภาพ Subject: บรรทัดที่ว่างเปล่า (ไม่ควรมีใครส่งข้อความที่มีหัวเรื่องว่างเปล่า)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา