Folosesc Postfix și Dovecot LMTP pe serverul meu. Întrebarea mea este cum creez o adresă de destinatar care renunță în tăcere și răspund la răspunsul automat? De asemenea, vreau să învăț fluxul de control al execuției Postfix și Dovecot.
Aceasta face parte din Postfixul meu principal.cf
:
alias_maps = hash:/etc/aliases
# Domenii virtuale
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_minimum_uid = 115
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mailbox.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql/domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql/aliases.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
In al meu /etc/aliases
:
devnull: /dev/null
În umila mea înțelegere, Postfix se ocupă de adresa destinatarului, există sau nu? Dacă adresa destinatarului a existat, atunci transportați la Dovecot LMTP pentru a gestiona livrarea locală. Este posibil transportul condiționat în Postfix? De exemplu, vreau să creez o adresă de e-mail de test, cum ar fi [email protected]
. Care cont este alias devull
. Scopul meu este destinatarul [email protected]
a eliminat în tăcere e-mailurile primite și mesajul PONG de răspuns automat către expeditor în scopul testării. Dacă adresa destinatarului nu a fost [email protected]
apoi transport la Dovecot-lmtp. Am încercat să folosesc pluginul de filtru Dovecot Sieve cu extensie de vacanță pentru a gestiona răspunsul automat. Dar în mail.log-ul sistemului meu:
# a înlocuit numele de domeniu actual cu DOMAIN
postfix/lmtp[13532]: 62EBD333697: to=<devnull@DOMAIN>, orig_to=<ping@DOMAIN>, relay=DOMEN[privat/dovecot-lmtp], delay=538, delays=538/0.02/0.44, dsn=5.1.1, status=bounced (gazdă DOMAIN[private/dovecot-lmtp] a spus:
550 5.1.1 <devnull@DOMAIN> Utilizatorul nu există: devnull@DOMAIN (ca răspuns la comanda RCPT TO))
Deci, cred că pluginul de filtru Dovecot Sieve nu funcționează cu un cont care nu există. Este posibil să executați scriptul Sieve înainte de a verifica căsuța poștală a utilizatorului? Dacă da, nici nu trebuie să folosesc devull
alias blackhole. Pot face asta în scriptul meu sieve ceva de genul:
dacă adresa: se potrivește cu „To” „ping@*” {
concediu de odihna
:secunde 1
„PONG”;
arunca;
}
ACTUALIZAT:
Am creat un utilizator numit ping
în baza mea de date și am primit un e-mail de răspuns în contul meu GMail. Dar nu a fost chiar un e-mail de răspuns. Era un e-mail nou în căsuța mea de e-mail. Apoi am încercat să răspund manual folosind software-ul Apple mail GUI. Funcționează conform așteptărilor. Apoi merg la gmail și apăs pe meniu Afișați originalul
.
De la Apple Mail mesaj-id
partea de domeniu a fost domeniul virtual corect al expeditorului.
Dar de la Dovecot/Sieve's mesaj-id
partea de domeniu a fost a serverului meu nume de gazdă
.
Nu știu de ce se întâmplă.Dar cred că poate din cauză că numele de domeniu a fost schimbat? În exemplul de lucru din software-ul Apple Mail, a fost domeniul virtual corect al expeditorului. Dar din răspunsul automat sieve a fost schimbat numele de gazdă real al serverului meu.
Un alt jurnal Postfix de la /var/log/mail.log
postfix/cleanup[1329]: EE83F333699: message-id=<dovecot-sieve-1623257247-953496-0@HOSTNAME>
PS: Am doar câteva zile de experiență cu Postfix, Dovecot și câteva ore de experiență cu sieve script. Sunt atât de începător. Sper că întrebarea și scopul meu au fost suficient de clare. Întrebați-mă orice dacă aveți nevoie de mai multe informații.