[postfix-users] Dynamische Empfängerverifikation mit Dovecot
Hallo Liste,
ich versuche gerade unseren Mailserver mit dovecot und postfix einzurichten und folge dem Beispiel von Peer Heinlein aus dem Linux Magazin 09/10.
Leider bekomme ich die dynamische Adressverifikation nicht in den Griff. Ich verwende zur Verbindung von Postfix zu dovecot LMTP.
Eingehende Nachrichten werden jedoch abgewiesen:
Fehler beim Senden der Nachricht: Der Mail-Server antwortete: 4.1.1 weber@example.de: Recipient address rejected: unverified address: unknown user: "weber".
Im Log steht dann folgender Eintrag:
May 6 16:00:50 a79 postfix/smtpd[8043]: NOQUEUE: reject: RCPT from ws.example.de[xxx.xxx.xxx.xxx]: 450 4.1.1 weber@example.de: Recipient address rejected: unverified address: unknown user: "weber"; from=test@example.de to=weber@example.de proto=ESMTP helo=<[xxx.xxx.xxx.xxx]>
Laut dem dovecot-wiki (http://wiki2.dovecot.org/LDA/Postfix) sollte ich aber einen Logeintrag wie diesen hier sehen:
Recipient address rejected: undeliverable address: host tux.example.com[private/dovecot-lmtp] said: 550 5.1.1 < tzknvtr@example.com > User doesn't exist: tzknvtr@example.com (in reply to RCPT TO command); from=< cnrilrgfclra@spammer.org > to=< tzknvtr@example.com >
Für mich sieht das so aus, als ob die Empfängerverifizierung gar nicht durchgefürt wird bzw. als ob LMTP noch nicht richtig funktioniert. Kann ich irgendwie testen, daß LMTP verwendet wird?
Wenn ich statt lmtp irgendetwas anderes verwende, dann erhalte ich auch die oben genannte Fehlermeldung. Ich habe den Eindruck, daß ich erst garnicht bis zur Verwendung von LMTP komme, sondern die Mail schon vorher abgewiesen wird. Ebenso, wenn ich die Konfiguration nicht als Relay-Setup aufbaue, wie von Peer vorgeschlagen, sondern wir im wiki unter http://wiki2.dovecot.org/HowTo/VirtualUserFlatFilesPostfix.
postconf -n: alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix disable_vrfy_command = yes inet_protocols = ipv4 mailbox_size_limit = 0 message_size_limit = 20480000 myhostname = example.de smtpd_banner = $myhostname ESMTP smtpd_helo_required = yes smtpd_recipient_restrictions = reject_unknown_recipient_domain, reject_unverified_recipient, reject_non_fqdn_recipient, permit_mynetworks, reject_unauth_destination permit smtpd_tls_security_level = none strict_rfc821_envelopes = yes relay_domains = hash:/etc/postfix/relay_domains transport_maps = $relay_domains
relay_domains: example.de lmtp:unix:private/dovecot-lmtp
doveconf -n:
# 2.0.12: /usr/local/etc/dovecot/dovecot.conf # OS: Linux 2.6.32-30-server x86_64 Ubuntu 10.04.2 LTS auth_debug = yes auth_verbose = yes auth_verbose_passwords = plain mail_debug = yes mail_location = mdbox:~/mdbox mail_plugins = acl quota namespace { hidden = no inbox = yes location = prefix = separator = / type = private } namespace { list = yes location = maildir:/var/vmail/public:LAYOUT=fs:INDEX=~/public prefix = Public/ separator = / subscriptions = no type = public } passdb { args = username_format=%n /var/vmail/auth.d/example.de/passwd driver = passwd-file } plugin { acl = vfile:/var/vmail/conf.d/%d/acls:cache_secs=300 quota = dict:user::file:%h/mdbox/dovecot-quota quota_rule = *:storage=1GB quota_rule2 = Trash:storage=+10% sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_global_dir = /var/vmail/conf.d/%d/sieve } protocols = imap lmtp service auth-worker { user = doveauth } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } user = doveauth } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 0 } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem userdb { args = username_format=%n /var/vmail/auth.d/example.de/passwd driver = passwd-file } verbose_proctitle = yes protocol lmtp { mail_plugins = acl quota sieve } protocol imap { mail_plugins = acl quota imap_acl imap_quota mail_log notify }
Viele Grüße und ein schönes Wochenende, Christoph
Am 06.05.2011 17:00, schrieb Christoph Weber:
Hallo Liste,
ich versuche gerade unseren Mailserver mit dovecot und postfix einzurichten und folge dem Beispiel von Peer Heinlein aus dem Linux Magazin 09/10.
Leider bekomme ich die dynamische Adressverifikation nicht in den Griff. Ich verwende zur Verbindung von Postfix zu dovecot LMTP.
Eingehende Nachrichten werden jedoch abgewiesen:
Fehler beim Senden der Nachricht: Der Mail-Server antwortete: 4.1.1 weber@example.de: Recipient address rejected: unverified address: unknown user: "weber".
Im Log steht dann folgender Eintrag:
May 6 16:00:50 a79 postfix/smtpd[8043]: NOQUEUE: reject: RCPT from ws.example.de[xxx.xxx.xxx.xxx]: 450 4.1.1 weber@example.de: Recipient address rejected: unverified address: unknown user: "weber"; from=test@example.de to=weber@example.de proto=ESMTP helo=<[xxx.xxx.xxx.xxx]>
Laut dem dovecot-wiki (http://wiki2.dovecot.org/LDA/Postfix) sollte ich aber einen Logeintrag wie diesen hier sehen:
Recipient address rejected: undeliverable address: host tux.example.com[private/dovecot-lmtp] said: 550 5.1.1 < tzknvtr@example.com > User doesn't exist: tzknvtr@example.com (in reply to RCPT TO command); from=< cnrilrgfclra@spammer.org > to=< tzknvtr@example.com >
Für mich sieht das so aus, als ob die Empfängerverifizierung gar nicht durchgefürt wird bzw. als ob LMTP noch nicht richtig funktioniert. Kann ich irgendwie testen, daß LMTP verwendet wird?
Wenn ich statt lmtp irgendetwas anderes verwende, dann erhalte ich auch die oben genannte Fehlermeldung. Ich habe den Eindruck, daß ich erst garnicht bis zur Verwendung von LMTP komme, sondern die Mail schon vorher abgewiesen wird. Ebenso, wenn ich die Konfiguration nicht als Relay-Setup aufbaue, wie von Peer vorgeschlagen, sondern wir im wiki unter http://wiki2.dovecot.org/HowTo/VirtualUserFlatFilesPostfix.
postconf -n: alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix disable_vrfy_command = yes inet_protocols = ipv4 mailbox_size_limit = 0 message_size_limit = 20480000 myhostname = example.de smtpd_banner = $myhostname ESMTP smtpd_helo_required = yes smtpd_recipient_restrictions = reject_unknown_recipient_domain, reject_unverified_recipient, reject_non_fqdn_recipient, permit_mynetworks, reject_unauth_destination permit smtpd_tls_security_level = none strict_rfc821_envelopes = yes relay_domains = hash:/etc/postfix/relay_domains transport_maps = $relay_domains
relay_domains: example.de lmtp:unix:private/dovecot-lmtp
doveconf -n:
# 2.0.12: /usr/local/etc/dovecot/dovecot.conf # OS: Linux 2.6.32-30-server x86_64 Ubuntu 10.04.2 LTS auth_debug = yes auth_verbose = yes auth_verbose_passwords = plain mail_debug = yes mail_location = mdbox:~/mdbox mail_plugins = acl quota namespace { hidden = no inbox = yes location = prefix = separator = / type = private } namespace { list = yes location = maildir:/var/vmail/public:LAYOUT=fs:INDEX=~/public prefix = Public/ separator = / subscriptions = no type = public } passdb { args = username_format=%n /var/vmail/auth.d/example.de/passwd driver = passwd-file } plugin { acl = vfile:/var/vmail/conf.d/%d/acls:cache_secs=300 quota = dict:user::file:%h/mdbox/dovecot-quota quota_rule = *:storage=1GB quota_rule2 = Trash:storage=+10% sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_global_dir = /var/vmail/conf.d/%d/sieve } protocols = imap lmtp service auth-worker { user = doveauth } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } user = doveauth } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 0 } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem userdb { args = username_format=%n /var/vmail/auth.d/example.de/passwd driver = passwd-file } verbose_proctitle = yes protocol lmtp { mail_plugins = acl quota sieve } protocol imap { mail_plugins = acl quota imap_acl imap_quota mail_log notify }
Viele Grüße und ein schönes Wochenende, Christoph
reject_unverified_recipient was soll das ?
Am 07.05.2011 09:20, schrieb Robert Schetterer:
reject_unverified_recipient was soll das ?
Siehe http://www.postfix.org/ADDRESS_VERIFICATION_README.html#recipient Ist doch vollkommen in Ordnung? Mache ich auf meinem Mailserver auch.
Mit freundlichen Grüßen, Jan Phillip Greimann
Am 09.05.2011 08:58, schrieb Jan Phillip Greimann:
Am 07.05.2011 09:20, schrieb Robert Schetterer:
reject_unverified_recipient was soll das ?
Siehe http://www.postfix.org/ADDRESS_VERIFICATION_README.html#recipient Ist doch vollkommen in Ordnung? Mache ich auf meinem Mailserver auch.
Mit freundlichen Grüßen, Jan Phillip Greimann
postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
also ich benutze reject_unverified_recipient hoechstens auf einem relay und per smtp abzufragen ob der Empfaenger auf einem anderem smtp server existiert ( ist das denn hier der Fall und wenn ja was hat das mit dovecot zu tun...)
und selbst dann muss man sich schon genau ueberlegen ob das die fuer den speziellen Fall die passende Methode ist !!!
bei einem normalen mailserver mit dovecot auf der gleichen/lokalen maschine und zb dovecot lmtp ist das eigentlich unnoetig die empfaenger adressen und domains hab ich zb in mysql daraus bedient sich dovecot und postfix
aber das subject verwirrt mich ohne hin wie soll das gemeint sein dynamische empfaenger ( fallen die vom Himmel ?...*g )
wie waere es mit zb reject_unlisted_recipient
Am 09.05.2011 12:56, schrieb Robert Schetterer:
bei einem normalen mailserver mit dovecot auf der gleichen/lokalen maschine und zb dovecot lmtp ist das eigentlich unnoetig die empfaenger adressen und domains hab ich zb in mysql daraus bedient sich dovecot und postfix
Genau das ist der Knackpunkt. Wieso die Daten doppelt abfragen? Das ist nur unnötige Last für die Datenbank. Außerdem speichert Postfix das Ergebnis zwischen, welches noch weniger Last für die Datenbank bedeutet (gerade bei nicht vorhandenen E-Mail-Adressen). Bei großen Mail-Server-Strukturen, wo mehrere Empfänger-MX eingetragen sind, werden proportional zur Anzahl der Server Datenbank-Anfragen vermieden und auch bei DoS-Attacken ist so etwas Gold wert.
aber das subject verwirrt mich ohne hin wie soll das gemeint sein dynamische empfaenger ( fallen die vom Himmel ?...*g )
Okay, der Subject ist ein wenig missverständlich. Stimme ich zu.
wie waere es mit zb reject_unlisted_recipient
Klar gibt es auch alternativen, wäre ja auch schlecht wenn nicht. :-) Im Grunde ist ja jeder Mail-Server irgendwie ein Individuum.
Am 09.05.2011 13:50, schrieb Jan Phillip Greimann:
Am 09.05.2011 12:56, schrieb Robert Schetterer:
bei einem normalen mailserver mit dovecot auf der gleichen/lokalen maschine und zb dovecot lmtp ist das eigentlich unnoetig die empfaenger adressen und domains hab ich zb in mysql daraus bedient sich dovecot und postfix
Genau das ist der Knackpunkt. Wieso die Daten doppelt abfragen?
sorry ich kann dir nicht mehr folgen wiso denn nun doppelt...? das erscheint mir dann eher eine Frage des Setups
Das ist
nur unnötige Last für die Datenbank.
aehm proxy:mysql bei postfix ? also meine Datenbanken stecken das locker weg, im Zweifelsfall wuerde ich dann mit eher statischen tables arbeiten, koennten man ja auch bei Bedarf aus der Datenbank erstellen, wenn zb ein user/domain erstellt wird, sich aendert usw
Außerdem speichert Postfix das
Ergebnis zwischen, welches noch weniger Last für die Datenbank bedeutet (gerade bei nicht vorhandenen E-Mail-Adressen).
soweit dringen die wenigsten vor bei mir die meisten bots etc scheitern schon viel weiter vorn
Bei großen
Mail-Server-Strukturen, wo mehrere Empfänger-MX eingetragen sind, werden proportional zur Anzahl der Server Datenbank-Anfragen vermieden und auch bei DoS-Attacken ist so etwas Gold wert.
postfix anvil...?, fail2ban, greylisting, selctive rbls , postscreen, firewalls sollten ausreichend sein ,zumindest bei mir
aber das subject verwirrt mich ohne hin wie soll das gemeint sein dynamische empfaenger ( fallen die vom Himmel ?...*g )
Okay, der Subject ist ein wenig missverständlich. Stimme ich zu.
wie waere es mit zb reject_unlisted_recipient
Klar gibt es auch alternativen, wäre ja auch schlecht wenn nicht. :-) Im Grunde ist ja jeder Mail-Server irgendwie ein Individuum.
postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
kurz und gut ich hab wahrlich grosses setups am laufen ( 5000 user usw ), es erschliesst mir nicht wozu ich da ein verify brauchen sollte, ausser wie schon erwaehnt, man hat relays davor ( aber selbst da wuerde ich wohl andere Verfahren bevorzugen)
im Normalfall braucht es sowas nicht aber bitte ,sicher kann man sowas basteln , aber wenn man es unnoetigerweise kompliziert macht ,fuehrt es halt dann auch zu Fehlern und einen solcher ist ja wohl der Anlass deiner Frage meine Antwort darauf du brauchst kein verify und einen zwingenden Zusammenhang mit dovecot der relevant waere kann ich real nicht erkennen
Am 09.05.2011 15:51, schrieb Robert Schetterer:
Am 09.05.2011 13:50, schrieb Jan Phillip Greimann:
Am 09.05.2011 12:56, schrieb Robert Schetterer:
bei einem normalen mailserver mit dovecot auf der gleichen/lokalen maschine und zb dovecot lmtp ist das eigentlich unnoetig die empfaenger adressen und domains hab ich zb in mysql daraus bedient sich dovecot und postfix
Genau das ist der Knackpunkt. Wieso die Daten doppelt abfragen?
sorry ich kann dir nicht mehr folgen wiso denn nun doppelt...? das erscheint mir dann eher eine Frage des Setups
Das ist
nur unnötige Last für die Datenbank.
aehm proxy:mysql bei postfix ? also meine Datenbanken stecken das locker weg, im Zweifelsfall wuerde ich dann mit eher statischen tables arbeiten, koennten man ja auch bei Bedarf aus der Datenbank erstellen, wenn zb ein user/domain erstellt wird, sich aendert usw
Außerdem speichert Postfix das
Ergebnis zwischen, welches noch weniger Last für die Datenbank bedeutet (gerade bei nicht vorhandenen E-Mail-Adressen).
soweit dringen die wenigsten vor bei mir die meisten bots etc scheitern schon viel weiter vorn
Bei großen
Mail-Server-Strukturen, wo mehrere Empfänger-MX eingetragen sind, werden proportional zur Anzahl der Server Datenbank-Anfragen vermieden und auch bei DoS-Attacken ist so etwas Gold wert.
postfix anvil...?, fail2ban, greylisting, selctive rbls , postscreen, firewalls sollten ausreichend sein ,zumindest bei mir
aber das subject verwirrt mich ohne hin wie soll das gemeint sein dynamische empfaenger ( fallen die vom Himmel ?...*g )
Okay, der Subject ist ein wenig missverständlich. Stimme ich zu.
wie waere es mit zb reject_unlisted_recipient
Klar gibt es auch alternativen, wäre ja auch schlecht wenn nicht. :-) Im Grunde ist ja jeder Mail-Server irgendwie ein Individuum.
postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
kurz und gut ich hab wahrlich grosses setups am laufen ( 5000 user usw ), es erschliesst mir nicht wozu ich da ein verify brauchen sollte, ausser wie schon erwaehnt, man hat relays davor ( aber selbst da wuerde ich wohl andere Verfahren bevorzugen)
im Normalfall braucht es sowas nicht aber bitte ,sicher kann man sowas basteln , aber wenn man es unnoetigerweise kompliziert macht ,fuehrt es halt dann auch zu Fehlern und einen solcher ist ja wohl der Anlass deiner Frage meine Antwort darauf du brauchst kein verify und einen zwingenden Zusammenhang mit dovecot der relevant waere kann ich real nicht erkennen
danke fuer deine offlist mail, der vollstaendigkeit halber
jetzt hab ich verstanden worauf ihr euch bezieht und es es ist wirklich ein tricky Verfahren !!!
wobei ich sagen wuerde das es nicht unbedingt einen perfomance Vorteil bringt, wenn man die zb mysql abfrage mit proxy macht
sollte aber die config erheblich vereinfachen wenn zb gar keine datenbank hat oder will
http://wiki2.dovecot.org/LDA/Postfix
Dynamic address verfication with LMTP
With Dovecot 2.0 you can also use LMTP and the Postfix setting "reject_unverified_recipient" for dynamic address verification. It's really nice because Postfix doesn't need to query an external datasource (MySQL, LDAP...). Postfix maintain a local database with existing/non existing addresses (you can configure how long positive/negative results should be cached).
To use LMTP and dynamic address verification you must first get Dovecot working. Then you can configure Postfix to use LMTP and set "reject_unverified_recipient" in the smtpd_recipient_restrictions.
On every incoming email Postfix will probe if the recipient address exists. You will see similar entries in your logfile
nur das hier sollte man beachten
Info: you can not use "reject_unverified_recipient" with "pipe" so this doesn't work with the Dovecot LDA "deliver".
evtl wird das ein Problem ( dh bin mir nicht sicher) wobei ich nicht ausschliessen moechte das es da einen Workaround gibt
bei http://wiki2.dovecot.org/Quota/Configuration
Quota warnings
You can configure Dovecot to run an external command when user's quota exceeds a specified limit. Note that the warning is ONLY executed at the exact time when the limit is being crossed, so when you're testing it you have to do it by crossing the limit by saving a new mail. If something else besides Dovecot updates quota so that the limit is crossed, the warning is never executed. The syntax is:
quota_warning = <limit configuration> <quota-warning socket name> <parameters> #quota_warning2 = ... #quota_warning3 = ..etc..
Limit configuration is the exact same as for rules. Usually you want to use percents instead of absolute limits. Only the command for the first exceeded limit is executed, so configure the highest limit first. The actual commands that are run need to be created as services.
An example configuration:
plugin { quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u }
service quota-warning { executable = script /usr/local/bin/quota-warning.sh # use some unprivileged user for executing the quota warnings user = vmail unix_listener quota-warning { } }
With the above example when user's quota exceeds 80%, quota-warning.sh is executed with parameter 80. The same goes for when quota exceeds 95%. If user suddenly receives a huge mail and the quota jumps from 70% to 99%, only the 95 script is executed.
You have to create the quota-warning.sh script yourself. Here is an example that sends a mail to the user:
#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/local/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing" From: postmaster@domain.com Subject: quota warning
Your mailbox is now $PERCENT% full. EOF
Am 09.05.2011 17:12, schrieb Robert Schetterer:
Am 09.05.2011 15:51, schrieb Robert Schetterer:
Am 09.05.2011 13:50, schrieb Jan Phillip Greimann:
Am 09.05.2011 12:56, schrieb Robert Schetterer:
bei einem normalen mailserver mit dovecot auf der gleichen/lokalen maschine und zb dovecot lmtp ist das eigentlich unnoetig die empfaenger adressen und domains hab ich zb in mysql daraus bedient sich dovecot und postfix
Genau das ist der Knackpunkt. Wieso die Daten doppelt abfragen?
sorry ich kann dir nicht mehr folgen wiso denn nun doppelt...? das erscheint mir dann eher eine Frage des Setups
Das ist
nur unnötige Last für die Datenbank.
aehm proxy:mysql bei postfix ? also meine Datenbanken stecken das locker weg, im Zweifelsfall wuerde ich dann mit eher statischen tables arbeiten, koennten man ja auch bei Bedarf aus der Datenbank erstellen, wenn zb ein user/domain erstellt wird, sich aendert usw
Außerdem speichert Postfix das
Ergebnis zwischen, welches noch weniger Last für die Datenbank bedeutet (gerade bei nicht vorhandenen E-Mail-Adressen).
soweit dringen die wenigsten vor bei mir die meisten bots etc scheitern schon viel weiter vorn
Bei großen
Mail-Server-Strukturen, wo mehrere Empfänger-MX eingetragen sind, werden proportional zur Anzahl der Server Datenbank-Anfragen vermieden und auch bei DoS-Attacken ist so etwas Gold wert.
postfix anvil...?, fail2ban, greylisting, selctive rbls , postscreen, firewalls sollten ausreichend sein ,zumindest bei mir
aber das subject verwirrt mich ohne hin wie soll das gemeint sein dynamische empfaenger ( fallen die vom Himmel ?...*g )
Okay, der Subject ist ein wenig missverständlich. Stimme ich zu.
wie waere es mit zb reject_unlisted_recipient
Klar gibt es auch alternativen, wäre ja auch schlecht wenn nicht. :-) Im Grunde ist ja jeder Mail-Server irgendwie ein Individuum.
postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
kurz und gut ich hab wahrlich grosses setups am laufen ( 5000 user usw ), es erschliesst mir nicht wozu ich da ein verify brauchen sollte, ausser wie schon erwaehnt, man hat relays davor ( aber selbst da wuerde ich wohl andere Verfahren bevorzugen)
im Normalfall braucht es sowas nicht aber bitte ,sicher kann man sowas basteln , aber wenn man es unnoetigerweise kompliziert macht ,fuehrt es halt dann auch zu Fehlern und einen solcher ist ja wohl der Anlass deiner Frage meine Antwort darauf du brauchst kein verify und einen zwingenden Zusammenhang mit dovecot der relevant waere kann ich real nicht erkennen
danke fuer deine offlist mail, der vollstaendigkeit halber
jetzt hab ich verstanden worauf ihr euch bezieht und es es ist wirklich ein tricky Verfahren !!!
wobei ich sagen wuerde das es nicht unbedingt einen perfomance Vorteil bringt, wenn man die zb mysql abfrage mit proxy macht
sollte aber die config erheblich vereinfachen wenn zb gar keine datenbank hat oder will
http://wiki2.dovecot.org/LDA/Postfix
Dynamic address verfication with LMTP
With Dovecot 2.0 you can also use LMTP and the Postfix setting "reject_unverified_recipient" for dynamic address verification. It's really nice because Postfix doesn't need to query an external datasource (MySQL, LDAP...). Postfix maintain a local database with existing/non existing addresses (you can configure how long positive/negative results should be cached).
To use LMTP and dynamic address verification you must first get Dovecot working. Then you can configure Postfix to use LMTP and set "reject_unverified_recipient" in the smtpd_recipient_restrictions.
On every incoming email Postfix will probe if the recipient address exists. You will see similar entries in your logfile
nur das hier sollte man beachten
Info: you can not use "reject_unverified_recipient" with "pipe" so this doesn't work with the Dovecot LDA "deliver".
wenn sich das nur auf dovecot deliver postfix pipe bezieht als lda sollte es zumindest bei Quota Warnings kein Problem sein
evtl wird das ein Problem ( dh bin mir nicht sicher) wobei ich nicht ausschliessen moechte das es da einen Workaround gibt
bei http://wiki2.dovecot.org/Quota/Configuration
Quota warnings
You can configure Dovecot to run an external command when user's quota exceeds a specified limit. Note that the warning is ONLY executed at the exact time when the limit is being crossed, so when you're testing it you have to do it by crossing the limit by saving a new mail. If something else besides Dovecot updates quota so that the limit is crossed, the warning is never executed. The syntax is:
quota_warning = <limit configuration> <quota-warning socket name>
<parameters> #quota_warning2 = ... #quota_warning3 = ..etc..
Limit configuration is the exact same as for rules. Usually you want to use percents instead of absolute limits. Only the command for the first exceeded limit is executed, so configure the highest limit first. The actual commands that are run need to be created as services.
An example configuration:
plugin { quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u }
service quota-warning { executable = script /usr/local/bin/quota-warning.sh # use some unprivileged user for executing the quota warnings user = vmail unix_listener quota-warning { } }
With the above example when user's quota exceeds 80%, quota-warning.sh is executed with parameter 80. The same goes for when quota exceeds 95%. If user suddenly receives a huge mail and the quota jumps from 70% to 99%, only the 95 script is executed.
You have to create the quota-warning.sh script yourself. Here is an example that sends a mail to the user:
#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/local/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing" From: postmaster@domain.com Subject: quota warning
Your mailbox is now $PERCENT% full. EOF
Guten Morgen,
Am 06.05.2011 17:00, schrieb Christoph Weber:
Fehler beim Senden der Nachricht: Der Mail-Server antwortete: 4.1.1 weber@example.de: Recipient address rejected: unverified address: unknown user: "weber".
Das ist richtig so, Erklärung kommt gleich.
postconf -n:
[...]
myhostname = example.de
[...]
smtpd_recipient_restrictions = reject_unknown_recipient_domain, reject_unverified_recipient, reject_non_fqdn_recipient, permit_mynetworks, reject_unauth_destination permit
[...]
relay_domains: example.de lmtp:unix:private/dovecot-lmtp
"example.de" ist in der myhostname definiert. Da mydestination nicht definiert wurde greift der Default-Wert mydestination = $myhostname, localhost.$mydomain, localhost
Daher nimmt der Mail-Server alle E-Mails für "example.com" als lokale Emails an, nicht als Relay-Domain.
Lösungen hierfür sind entweder ein setzen von mydestination = "" oder ein ändern von myhostname
Zusätzlich ist mir noch aufgefallen, dass in der smtpd_recipient_restrictions nach reject_unauth_destination ein Komma fehlt, weiß aber nicht ob das wirklich schlimm ist.
Ich glaube das war es.
Mit freundlichen Grüßen Jan Phillip Greimann
Vielen Dank!
Genau das war der Fehler in der Config. Jetzt läuft es wie es soll.
Viele Grüße, Christoph Weber
Am 09.05.2011 08:56, schrieb Jan Phillip Greimann:
Guten Morgen,
Am 06.05.2011 17:00, schrieb Christoph Weber:
Fehler beim Senden der Nachricht: Der Mail-Server antwortete: 4.1.1 weber@example.de: Recipient address rejected: unverified address: unknown user: "weber".
Das ist richtig so, Erklärung kommt gleich.
postconf -n:
[...]
myhostname = example.de
[...]
smtpd_recipient_restrictions = reject_unknown_recipient_domain, reject_unverified_recipient, reject_non_fqdn_recipient, permit_mynetworks, reject_unauth_destination permit
[...]
relay_domains: example.de lmtp:unix:private/dovecot-lmtp
"example.de" ist in der myhostname definiert. Da mydestination nicht definiert wurde greift der Default-Wert mydestination = $myhostname, localhost.$mydomain, localhost
Daher nimmt der Mail-Server alle E-Mails für "example.com" als lokale Emails an, nicht als Relay-Domain.
Lösungen hierfür sind entweder ein setzen von mydestination = "" oder ein ändern von myhostname
Zusätzlich ist mir noch aufgefallen, dass in der smtpd_recipient_restrictions nach reject_unauth_destination ein Komma fehlt, weiß aber nicht ob das wirklich schlimm ist.
Ich glaube das war es.
Mit freundlichen Grüßen Jan Phillip Greimann
participants (3)
-
Christoph Weber
-
Jan Phillip Greimann
-
Robert Schetterer