Puncte:1

Arhiva Postfix care păstrează Bcc cu X-Envelope-To - curățare confidențială X-Envelope-To cu Lmtp

drapel cn

Făcând Bcc utilizatorul [email protected], o facem nu doresc ca oamenii să primească acea listă Bcc, în afară de „utilizatorul” [email protected].

Poartă

  1. Dorim să arhivăm toate e-mailurile care trec prin postfix, trimise și primite. Configurarea folosește:
  • postfix,
  • autentificare porumbel cu utilizatorii Pam (trag din Ldap),
  • și livrare la cutiile poștale prin LMTP lui Dovecot.
  1. Dorim să includem destinatarii Bcc în arhiva de mesaje.

  2. Noi facem nu doresc ca oamenii să primească acea listă Bcc, în afară de „utilizatorul” [email protected].

Proces

  1. Folosind always_bcc = [email protected] Lucrări. Dar recepțiile Bcc (care, conform drepturilor sunt în plic ca RCPT TO și nu într-un antet) se pierd.

  2. Folosind: (conform Ce opțiuni există pentru a arhiva e-mailurile Postfix și pentru a păstra orice informații BCC din antet)

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

în timp ce expresia pcre este:

prepend.pcre
/(.+)/ PREPEND X-Envelope-To: $1

care funcționează ca un farmec: mesajul meu stocat are antetele Către:; Cc; X-Plic-To. Dacă într-o zi trebuie să cercetăm el, putem ști cine a primit mesajul chiar și în Bcc. (NB: X-Envelope-To include persoanele To și Cc, pas precum și destinatarii domeniilor externe).

  1. Pentru a elimina X-Envelope-To: Pentru trimitere:
smtp_header_checks = pcre:/etc/postfix/smtp_header_checks.pcre

Cu continutul:

smtp_header_checks.pcre
/^X-Envelope-To:/ IGNORE

Totul ok pana acolo.

Problemă

Pentru a elimina X-Envelope-To pentru e-mailurile care nu părăsesc serverul. Am facut:

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

lmtp_header_checks.pcre
/^X-Envelope-To:/ IGNORE

Dar acest lucru nu este selectiv, chiar și [email protected] pierde antetul care a fost „salvat” în lista Bcc.

Nu pot găsi o modalitate de verificare selectivă a antetului, deoarece evaluează doar linia în sine și nu poate folosi destinatarul pentru a face o condiție (chiar folosind „dacă” din pcre). (http://www.postfix.org/pcre_table.5.html)

Există vreo variabilă care poate fi folosită? Un gând a fost să: includeți „[email protected]” în antetul X-Envelope-To anexat, în lmtp_header_checks.pcre, includeți ceva de genul: [email protected] nu este egal cu $LMTP_DELIVERY_RECIPIENT Delivered-To sau X-Delivered-To rămân un antet separat pe care pcre nu îl poate evalua ca variabilă.

În caz contrar, există o modalitate de a face ca lmtp să declanșeze niște milter? Și un filtru simplu lmtp_milter pe care îl pot folosi pentru asta?

Am urmărit zile întregi în toate documentele posibile, Mulțumesc anticipat

Puncte:1
drapel cn

O da ! Iti multumesc foarte mult.

Limbajul sită nu va permite repetarea peste mai multe X-Plic-To antete. Deci trebuie să-l transmiteți unui program extern.

Iată ce am venit cu:

cere „fileinto”;
necesită „imap4flags”;
necesită ["editheader", "plic"];
necesită „vnd.dovecot.filter”;
dacă antetul: conține „X-Spam-Flag” „DA”
{
   fișier în „junk”;
   Stop;
}
dacă plicul :este „la” „[email protected]” {
   filtrul „EnvelopeToBcc.sh”;
} altfel {
   șterge antetul „X-Envelope-To”;
}
#!/bin/bash
# Stocați e-mailul într-o variabilă
# flux de intrare
mail=`cat /dev/stdin`
# Extrageți antetele
plic=$(echo "$mail" | formail -x X-Envelope-To | tr -d '\015')
tos=$(echo "$mail" | formail -x To | tr -d '\015')
copii=$(echo "$mail" | formail -x Cc | tr -d '\015')

# Buclă excluzând câmpurile To: și concatenează în variabilă
bcc=""
pentru i in $plic; do
        dacă [[ ${tos} != *"${i}"* && ${copii} != *"${i}"* ]];atunci
                bcc="${bcc} ${i},"
        fi
Terminat
# Eliminați virgula finală
bcc=$(echo $bcc | sed s/,$//)
# Adăugați antet Bcc la e-mail 
echo „${mail}” | formail -a „Bcc: $bcc”

Dacă deschideți arhiva cu orice MUA, puteți vedea bcc reconstruit. NB: script-ul un pic mai lung, dar evită duplicarea Către persoane din lista Bcc.

Puncte:0
drapel fr
anx

Folosește limbajul Sieve.

Deoarece e-mailul dvs. este livrat prin LMTP către Dovecot, veți avea acolo toate capabilitățile de adresare și de editare a antetului, cu o grămadă de capabilități logice mai complexe decât cele oferite de simplele verificări ale antetului Postfix.

Dacă nu utilizați încă Pigeonhole Sieve, poate fi necesar să îl activați ca plugin Dovecot, să activați extensiile de care aveți nevoie în scriptul dvs. și să configurați un script potrivit.

# pasul 1 activați sită (adăugați la $mail_plugins pentru a *adăugare*)
protocol lmtp {
  mail_plugins = $mail_plugins sită
}
# pasul 2 activați extensiile de sită, după cum este necesar (prefixul cu + pentru a *adăugare*)
conecteaza {
    sieve_extensions = +editheader
}
# pasul 3 configura calea a unui script care urmează să fie executat

Apoi, într-un script executat global sau în mod specific pentru utilizatorii care nu vor vedea adresa plicului, ștergeți antetul - cu excepția cazului în care se livrează în căsuța poștală de arhivă:

necesită ["editheader", "plic"];
dacă nu plic: este „la” „arhivă@example.com” {
    șterge antetul „X-Envelope-To”;
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.