Bug 17429 - Subfolder Email-Addressen wie user+subfolder@domaine.tld können nicht eingestellt werden
Subfolder Email-Addressen wie user+subfolder@domaine.tld können nicht eingest...
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC - Domain management (Generic)
UCS 2.3
Other Linux
: P5 normal (vote)
: UCS 2.3-2
Assigned To: Janek Walkenhorst
Felix Botner
:
Depends on:
Blocks: 18347
  Show dependency treegraph
 
Reported: 2010-01-21 14:28 CET by Joerg Steffens
Modified: 2010-05-18 10:00 CEST (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
Anpassung der syntax.py für E-Mail-Adressen (3.99 KB, patch)
2010-03-10 16:27 CET, Janek Walkenhorst
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Joerg Steffens 2010-01-21 14:28:30 CET
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.
Comment 1 Stefan Gohmann univentionstaff 2010-01-21 15:30:35 CET
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.
Comment 2 Janek Walkenhorst univentionstaff 2010-03-10 16:27:28 CET
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).
Comment 3 Janek Walkenhorst univentionstaff 2010-03-10 16:42:26 CET
(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
Comment 4 Janek Walkenhorst univentionstaff 2010-03-10 16:50:40 CET
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>
Comment 5 Janek Walkenhorst univentionstaff 2010-03-10 16:54:15 CET
(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.
Comment 6 Stefan Gohmann univentionstaff 2010-03-10 16:59:34 CET
Siehe auch Bug #4909.
Comment 7 Janek Walkenhorst univentionstaff 2010-03-29 13:56:28 CEST
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})
Comment 8 Janek Walkenhorst univentionstaff 2010-03-29 14:01:06 CEST
(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")
Comment 9 Stefan Gohmann univentionstaff 2010-04-27 08:41:57 CEST
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 "_")
Comment 10 Philipp Hahn univentionstaff 2010-04-27 09:07:16 CEST
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.
Comment 11 Stefan Gohmann univentionstaff 2010-04-27 09:20:51 CEST
(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.
Comment 12 Stefan Gohmann univentionstaff 2010-04-27 10:51:33 CEST
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
Comment 13 Janek Walkenhorst univentionstaff 2010-05-04 15:12:19 CEST
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.
Comment 14 Felix Botner univentionstaff 2010-05-07 10:57:47 CEST
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
Comment 15 Stefan Gohmann univentionstaff 2010-05-18 10:00:03 CEST
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".