Score:1

ไฟล์เก็บถาวร Postfix รักษา Bcc ด้วย X-Envelope-To - ล้างข้อมูล X-Envelope-To ที่เป็นความลับด้วย Lmtp

ธง cn

เราทำสำเนาถึงผู้ใช้ [email protected] ไม่ ต้องการให้ผู้คนได้รับรายการสำเนาลับนั้น นอกเหนือจาก "ผู้ใช้" [email protected]

เป้าหมาย

  1. เราต้องการเก็บถาวรจดหมายทั้งหมดที่ผ่าน postfix ส่งและรับ การตั้งค่าใช้:
  • โพสต์ฟิกซ์,
  • การตรวจสอบสิทธิ์ dovecot กับผู้ใช้ Pam (ดึงจาก Ldap)
  • และจัดส่งทางไปรษณีย์ทาง LMTP ของ Dovecot.
  1. เราต้องการรวมผู้รับ Bcc ในที่เก็บข้อความ

  2. พวกเราทำ ไม่ ต้องการให้ผู้คนได้รับรายการสำเนาลับนั้น นอกเหนือจาก "ผู้ใช้" [email protected]

การทดลอง

  1. ใช้ always_bcc = [email protected] ทำงาน แต่ผู้รับสำเนาลับ (ซึ่งตามสิทธิ์อยู่ในซองจดหมายเป็น RCPT TO และไม่อยู่ในส่วนหัว) หายไป

  2. โดยใช้: (ตาม มีตัวเลือกใดบ้างในการเก็บอีเมล Postfix และเก็บข้อมูล BCC ในส่วนหัว)

main.cf
smtpd_recipient_restrictions =
  check_recipient_access pcre:/etc/postfix/prepend.pcre

ในขณะที่นิพจน์ pcre คือ:

prepend.pcre
/(.+)/ PREPEND X-Envelope-ถึง: $1

ซึ่งใช้งานได้อย่างมีเสน่ห์: ข้อความของฉันที่เก็บไว้มีส่วนหัวถึง:; สำเนา; X-ซองจดหมายถึง. หากวันใดต้องขุดคุ้ยก็สามารถรู้ได้ว่าใครได้รับข้อความแม้จะเป็นสำเนาลับถึงก็ตาม (หมายเหตุ: X-Envelope-To รวมผู้ถึงและสำเนาถึง รวมถึงผู้รับโดเมนภายนอกด้วย)

  1. ในการกำจัด X-Envelope-To: สำหรับการส่งออก:
smtp_header_checks = pcre:/etc/postfix/smtp_header_checks.pcre

ด้วยเนื้อหา:

smtp_header_checks.pcre
/^X-ซองจดหมาย-ถึง:/ IGNORE

ตกลงจนกว่าจะมี

ปัญหา

เพื่อกำจัด X-Envelope-To สำหรับอีเมลที่ไม่ได้ออกจากเซิร์ฟเวอร์ ฉันทำ:

lmtp_header_checks = pcre:/etc/postfix/lmtp_header_checks.pcre

lmtp_header_checks.pcre
/^X-ซองจดหมาย-ถึง:/ IGNORE

แต่นี่ไม่ใช่การเลือก แม้ว่า [email protected] จะสูญเสียส่วนหัวที่ "บันทึก" รายการสำเนาลับ

ฉันไม่สามารถหาวิธีไปยังส่วนหัวที่เลือกตรวจสอบได้เนื่องจากมันประเมินบรรทัดเท่านั้นและไม่สามารถใช้ผู้รับเพื่อสร้างเงื่อนไข (แม้จะใช้ "ถ้า" ของ pcre) (http://www.postfix.org/pcre_table.5.html)

มีตัวแปรใดที่สามารถใช้ได้ ? ความคิดคือ: รวม "[email protected]" ในส่วนหัว X-Envelope-To ที่ต่อท้าย ใน lmtp_header_checks.pcre ให้รวมสิ่งที่ต้องการ: [email protected] ไม่เท่ากับ $LMTP_DELIVERY_RECIPIENT Delivery-To หรือ X-Delivered-To ยังคงเป็นส่วนหัวแยกต่างหากที่ pcre ไม่สามารถประเมินเป็นตัวแปรได้

มิฉะนั้นจะมีวิธีใดที่จะทำให้ lmtp เรียกใช้ milter ได้บ้าง และตัวกรอง lmtp_milter อย่างง่ายที่ฉันสามารถใช้ได้ ?

ไล่ตามเอกสารทั้งหมดเท่าที่จะเป็นไปได้มาหลายวัน ขอบคุณล่วงหน้า

Score:1
ธง cn

โอ้ใช่ ! ขอบคุณมาก.

ภาษาตะแกรงจะไม่อนุญาตให้มีการวนซ้ำหลายครั้ง X-ซองจดหมายถึง ส่วนหัว ดังนั้นเราต้องส่งต่อไปยังโปรแกรมภายนอก

นี่คือสิ่งที่ฉันคิดขึ้นมา:

ต้องการ "fileinto";
ต้องการ "imap4flags";
ต้องการ ["หัวแก้ไข", "ซองจดหมาย"];
ต้องการ "vnd.dovecot.filter";
ถ้าส่วนหัว: มี "X-Spam-Flag" "ใช่"
{
   ไฟล์ลงใน "ขยะ";
   หยุด;
}
ถ้าซองจดหมาย: เป็น "ถึง" "[email protected]" {
   กรอง "EnvelopeToBcc.sh";
} อื่น {
   ส่วนหัวของไฟล์ "X-Envelope-To";
}
#!/bin/bash
# เก็บจดหมายในตัวแปร
#กระแสเข้า
mail=`แมว /dev/stdin`
#ดึงส่วนหัว
ซองจดหมาย=$(echo "$mail" | formail -x X-Envelope-To | tr -d '\015')
tos=$(echo "$mail" | formail -x ถึง | tr -d '\015')
copy=$(echo "$mail" | formail -x Cc | tr -d '\015')

# วนซ้ำไม่รวมช่องถึง: และเชื่อมต่อในตัวแปร
สำเนาลับ = "
สำหรับฉันใน $envelope; ทำ
        ถ้า [[ ${tos} != *"${i}"* && ${copies} != *"${i}"* ]];แล้ว
                bcc="${bcc} ${i},"
        ไฟ
เสร็จแล้ว
# กำจัดเครื่องหมายจุลภาคต่อท้าย
bcc=$(เสียงสะท้อน $bcc | sed s/,$//)
# เพิ่มส่วนหัว Bcc ในจดหมาย 
echo "${mail}" | formail -a "สำเนาลับ: $bcc"

หากคุณเปิดไฟล์เก็บถาวรด้วย MUA ใด ๆ คุณจะเห็นสำเนาลับที่สร้างขึ้นใหม่ หมายเหตุ: สคริปต์ยาวขึ้นเล็กน้อย แต่จะหลีกเลี่ยงการซ้ำซ้อนของ To people ในรายการ Bcc

Score:0
ธง fr
anx

ใช้ภาษาซีฟ

เนื่องจากจดหมายของคุณถูกส่งผ่าน LMTP ไปยัง Dovecot คุณจะมีความสามารถในการแก้ไขที่อยู่และส่วนหัวทั้งหมดที่นั่น พร้อมด้วยความสามารถทางตรรกะที่ซับซ้อนมากมายกว่าความสามารถที่มีในการตรวจสอบส่วนหัวของ Postfix แบบธรรมดา

หากคุณยังไม่ได้ใช้ตะแกรง Pigeonhole คุณอาจต้องเปิดใช้งานเป็นปลั๊กอิน Dovecot เปิดใช้งานส่วนขยายที่คุณต้องการในสคริปต์ของคุณ และกำหนดค่าสคริปต์ที่เหมาะสม

# ขั้นตอนที่ 1 เปิดใช้งานตะแกรง (ต่อท้าย $mail_plugins เพื่อ *เพิ่ม*)
โปรโตคอล lmtp {
  mail_plugins = $mail_plugins ตะแกรง
}
# ขั้นตอนที่ 2 เปิดใช้งานส่วนขยายของตะแกรงตามต้องการ (คำนำหน้าด้วย + ถึง *เพิ่ม*)
เสียบเข้าไป {
    sieve_extensions = +ส่วนหัวแก้ไข
}
# step3 กำหนดเส้นทาง a ของสคริปต์ที่จะดำเนินการ

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

ต้องการ ["หัวแก้ไข", "ซองจดหมาย"];
ถ้าไม่ใช่ซองจดหมาย : คือ "ถึง" "[email protected]" {
    ส่วนหัวของไฟล์ "X-Envelope-To";
}

โพสต์คำตอบ

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