Univention Bugzilla – Bug 17429
Subfolder Email-Addressen wie user+subfolder@domaine.tld können nicht eingestellt werden
Last modified: 2010-05-18 10:00:03 CEST
Mit dem UDM Webfrontend ist es nicht möglich, Email-Adressen in der Form shared+external/partner/bacula@dass-it.de zu verwalten. Genuaer gesagt stört sich der Syntax-Checker an dem "+" und/oder dem "/". Für Postifx ist diese Notation aber zulässig und bedeutet, dass die Email an shared@dass-it.de zugestellt wird und dort in dem Folder external/partner/bacula abgelegt. Diese Syntax nutzen wir intensiv. Derzeit können wir sie aber nicht über UDM pflegen. Ich bitte dem UDM entsprechend anzupassen.
Möglicher Workaround wäre die Syntax im UDM Modul anzupassen, bspw.: ucr set directory/manager/web/modules/mail/folder/properties/mailPrimaryAddress/syntax=string Allerdings verhindert dann scheinbar die Schema Defintion das Anlegen. Das sollte zur 2.3-2 geprüft werden.
Created attachment 2330 [details] Anpassung der syntax.py für E-Mail-Adressen Diese Änderungen erlauben die meisten gültigen E-Mail-Adressen, und prüfen gleichzeitig strikter (nach RFC).
(In reply to comment #2) > Created an attachment (id=2330) [details] > Anpassung der syntax.py für E-Mail-Adressen > > Diese Änderungen erlauben die meisten gültigen E-Mail-Adressen, und prüfen > gleichzeitig strikter (nach RFC). Diese Änderungen benötigen den Patch aus Bug #17852
Wenn man als weitere E-Mail-Adresse an einem Benutzer eine Adresse mit einem Ordner (nutzername+shared/ordner@domain.tld) angibt, werden E-Mail an diese Adresse nicht mehr abgelehnt. Die E-Mails an diese Adresse landen jedoch im Posteingang, nicht in dem Ordner, haben jedoch als Empfänger die vollständige Adresse inklusive dem Ordnernamen. Wenn man die Adresse eines IMAP-Ordners nach diesem Format angibt, so werden E-Mails an diese Adresse abgelehnt. Intern scheint diese Notation schon verwendet zu werden, um die E-Mail an die Ordner zu verteilen: Ordner "namee", Adresse "adree@univention.qa", mail.log: <univentioninternalpostuser+shared/namee@univention.qa>
(In reply to comment #2) > Created an attachment (id=2330) [details] > Anpassung der syntax.py für E-Mail-Adressen > > Diese Änderungen erlauben die meisten gültigen E-Mail-Adressen, und prüfen > gleichzeitig strikter (nach RFC). Wenn diese Änderungen angewendet werden, sollte auch die neue Syntax im Handbuch dokumentiert werden.
Siehe auch Bug #4909.
Fixed: Patch wurde angewendet SVN Revision 16025 16026 univention-directory-manager-modules (5.0.59-1) unstable; urgency=low * extend email address validation (Bug #17429) Changelog: \item E-Mail-Adressen können jetzt mehr Sonderzeichen enthalten. (\ucsBug{17429})
(In reply to comment #0) > Mit dem UDM Webfrontend ist es nicht möglich, Email-Adressen in der Form > shared+external/partner/bacula@dass-it.de > > zu verwalten. Genuaer gesagt stört sich der Syntax-Checker an dem "+" und/oder > dem "/". Für Postifx ist diese Notation aber zulässig und bedeutet, dass die > Email an shared@dass-it.de zugestellt wird und dort in dem Folder > external/partner/bacula abgelegt. > > Diese Syntax nutzen wir intensiv. Derzeit können wir sie aber nicht über UDM > pflegen. Ich bitte dem UDM entsprechend anzupassen. E-Mail-Adressen von IMAP Ordnern können jetzt auch "/" und "+" enthalten - damit ist es möglich vorhandene Adressen der Form "shared+external/partner/bacula@dass-it.de" IMAP Ordnern zuzuweisen. Wenn diese Syntax verwendet wird, kann der Absender jedoch nicht mehr geprüft werden, jeder kann also E-Mails an den Ordner senden. Für neue Ordner bietet es sich an einen IMAP Ordner ("shared/external/partner/bacula") anzulegen und diesem eine einfach E-Mail-Adresse zuzuweisen ("partner-bacula@dass-it.de")
Es werden keine Adressen mehr mit einem Unterstrich zugelassen. Das war vor UCS 2.3-2 möglich. Aus ucs-test: Creating user 'mailtestuser04c4354'... E: Invalid Syntax: Primary e-mail address: Not a valid email address! (invalid character "_")
In der (aktuellen) iX 5/2010 ist (mal wieder ein fehlerhafter) Artikel über Email, wo unter anderem auf RFC 2822 verwiesen wird. Demnach sind auch solche Adressen wie die folgenden gültig: "Abc\@def"@example.com "Fred Bloggs"@example.com "Joe\\Blow"@example.com "Abc@def"@example.com customer/department=shipping@example.com $A12345@example.com !def!xyz%abc@example.com_somename@example.com Die wichtigste Aussage auf dem RFC ist eigentlich folgende: The local-part portion is a domain dependent string. In addresses, it is simply interpreted on the particular host as a name of a particular mailbox. Demnach ist eigentlich alles vor dem letzten @-Zeichen erlaubt. Jede Restriktion die man da einbaut ist eigentlich falsch, insbesondere ist da deutlich mehr erlaubt als nur [a-zA-Z0-9._], wie schon das '+' zeigt, da bei vielen Web-Seiten nichtmal akzeptiert wird.
(In reply to comment #10) > Demnach ist eigentlich alles vor dem letzten @-Zeichen erlaubt. Jede > Restriktion die man da einbaut ist eigentlich falsch, insbesondere ist da > deutlich mehr erlaubt als nur [a-zA-Z0-9._], wie schon das '+' zeigt, da bei > vielen Web-Seiten nichtmal akzeptiert wird. Ich sehe das genau so, die Begrenzung sollte im Moment nur die LDAP-Schema-Definition sein. Vor allem, weil wir nicht genau sagen können, in welchen Konstellationen UCS im Einsatz ist.
Ein weiterer Test, der ggf. angepasst werden muss /usr/share/ucs-test/scripts/66_udm-computers/38_modify_nagios_contact_email: info 2010-04-27 05:19 EXECUTING: univention-directory-manager 'computers/domaincontroller_backup' modify --dn "cn=wsgwmvhw,cn=computers,dc=amd64,dc=auto,dc=update,dc=test" --set "nagiosContactEmail=rnevpcut@.quljhcia" Traceback (most recent call last): File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 231, in doit output = univention.admincli.admin.doit(arglist) File "/usr/lib/python2.4/site-packages/univention/admincli/admin.py", line 901, in doit out.extend(object_input(module, object, input, append, remove)) File "/usr/lib/python2.4/site-packages/univention/admincli/admin.py", line 348, in object_input object[key]=value File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 2144, in __setitem__ super(simpleComputer, self).__setitem__(key, value) File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 224, in __setitem__ raise univention.admin.uexceptions.valueInvalidSyntax, "%s: %s"%(key,err) valueInvalidSyntax: nagiosContactEmail: Not a valid email address! (empty domain-part labels are not allowed) info 2010-04-27 05:19 failed modifying computers/domaincontroller_backup object wsgwmvhw
Fixed: Es wird jetzt nur noch auf ein "@" in der E-Mail Adresse geprüft. univention-directory-manager-modules (5.0.70-1) unstable; urgency=low * extend email address validation (Bug #17429) Die beste Lösung wäre es eventuell, den für den local-part zu prüfen, ob alle Zeichen in der Menge der Zeichen sind, die direkt im local-part vorkommen dürfen, oder ob sie mit "" oder \ maskiert sind. Für den domain-part dann prüfen, ob es sich um eine von DNS erlaubte Domain handelt.
Es ist nun ein beliebiger String in Email Adressen erlaubt, solange er eine @ enthält. ldapsearch -x uid=univention mailAlternativeAddress -LLL dn: uid=univention,cn=users,dc=univention,dc=qa mailAlternativeAddress: a57623jh$%\+aaa++%$% 6576@univention.qa mailAlternativeAddress: $$$$$$ ++++++++ @@@@@univention.qa
UCS 2.3-2 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden: "Clone This Bug".