[Erledigt] CC: Funktion zur Prüfung von Mailadressen

1. August 2016 20:22

Hallo,
ich habe bei uns einiges umgestellt und lasse u.a. automatisiert via Codeunit PDFs erzeugen und per Email versenden. Leider habe ich dabei immer mal Vorgänge bei denen die Mailadresse laut NAV nicht korrekt ist und der zuständige Dienst mit einer Fehlermeldung die arbeit quittiert. Das würde ich natürlich gerne im Vorfeld korrigieren, idealerweise bei der Eingabe. Ich benötige also eine Funktion zur Prüfung von Mailadressen.
Ich habe Dr. Google bemüht, aber nicht so wirklich eine Lösung gefunden. Es scheint eigentlich naheligend die "CheckValidEmailAddress" der Codeunit SMTP Mail (400) zu nutzen, welche letzten Endes ja auch meinen Dienst zum erliegen bringt.
Kurioserweise kann ich aber gerade auf diesen Teil der Codeunit nicht von einer anderen Codeunit zugreifen (siehe Anhang). Hat jemand eine Idee wie ich dies dennoch bewerkstelligen könnte?

Natürlich könnte ich die Funktion aus der Codeunit 400 wegkopieren, aber ich bein kein Freund von Redundanzen. Auch möchte ich das Rad ungern neu erfinden und eine eigene Prüfung bauen.
Danke und Gruß
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von FlensGold am 2. August 2016 15:56, insgesamt 1-mal geändert.

Re: CC: Funktion zur Prüfung von Mailadressen

2. August 2016 13:07

In den Properties der function "Local" auf "No" ändern. Diese Eigenschaft bewirkt dass die Function nur innerhalb des Objekts (also der Codeunit) angesprungen werden kann. Du musst natürlich schauen ob die so funktioniert wie du es benötigst wenn du sie von außen aufrufst, d. h. ob alle Variablen passend gesetzt sind. Es hat vermutlich einen Grund dass Microsoft die funtion auf "local" gesetzt hat.

Re: CC: Funktion zur Prüfung von Mailadressen

2. August 2016 14:20

Hallo,
vielen Dank für die Antwort, das war es tatsächlich. Da ich nicht die StandardCU anpassen wollte habe ich mich nun doch dazu entschlossen die Funktion zu kopieren und das "local" auf "no" zu setzen. Die Prüfung kann somit auch an anderer Stelle erfolgen. Dennoch scheint sich ein generelles Problem mit NAV2009 herauszustellen (zumindest mit unserer Version). Sobald ich eine Emailadresse mit Umlauten habe läuft diese auf einen Fehler "Die E-Mail-Adresse äöü@test.de ist ungültig"
Sobald ich die Umlaute entferne läuft es durch, was natürlich keine Lösung ist. Da meines Wissens erst 2012 die Umlaute in Mailadressen erlaubt wurden kann es natürlich an unserer alten NAV Version liegen. Gibt es ggf. einen Workaround (z.B. "CheckValidEmailAddress" aus SMTP Mail Funktion einer aktuellen NAV Version übernehmen)?
Danke und Gruß

Re: CC: Funktion zur Prüfung von Mailadressen

2. August 2016 15:32

Hallo,

du müsstest in der Funktion CheckValidEmailAddress die Zeile:

Code:
(EmailAddress[i] IN ['@','.','-','_']))


sinngemäß erweitern. Ich bin mir allerdings nicht sicher, ob die übrigen Komponenten (COM-Automations) damit umgehen können.

Gruß Fiddi

Re: CC: Funktion zur Prüfung von Mailadressen

2. August 2016 15:56

Hall,
danke für die Rückmeldung.
Das habe ich doch glatt mal getestet...um direkt auf das nächste Problem zu stoßen:
Fehler vom SMTP-Mailsystem: (0x8004020F): Der Server hat eine oder mehrere Empfängeradressen zurückgewiesen. Die Serverantwort lautet: 501 5.5.4 Invalid Address


Laut Dr. Google scheint nun unser etwas betagter Exchange Server als "Bremsklotz" in Erscheinung zu treten. Zumindest erhalte ich auch eine Fehlermeldung, wenn ich direkt aus Outlook an eine Adresse mit Umlauten sende:
Das Format dieser E-Mail-Adresse ist falsch. Überprüfen Sie die E-Mail-Adresse des Empfängers, schlagen Sie den Empfänger im Adressbuch nach, oder setzen Sie sich direkt mit dem Empfänger in Verbindung, um die richtige E-Mail-Adresse herauszufinden.


Spätestens hier ist nun leider Schluss, da kann ich selbst nichts weiter machen. Schade eigentlich :-(

Re: [Erledigt] CC: Funktion zur Prüfung von Mailadressen

2. August 2016 16:08

Hallo,

evtl. hilft noch ein kleiner Trick, den du noch einmal prüfen solltest.
NAV CC arbeitet ja mit OEM850- Zeichensatz, der Mailserver aber wohl mit dem Windows- Zeichensatz .
die CU 11501 GeneralMgt enthält eine Funktion ASCII2Ansi, die kann den NAV- Zeichensatz in Windows umwandeln (ß allerdings im Standard nicht). Du solltest mal die Mailadressen mit dieser Funktion umwandeln, bevor du sie der MAIL-Automation übergibst.

Gruß Fiddi

Re: [Erledigt] CC: Funktion zur Prüfung von Mailadressen

3. August 2016 10:48

Hallo,
ich habe das gerade mal getestet. Leider macht die Funktion aus einem "ö" dann ein "õ", welches dann von der "CheckValidEmailAddress" Funktion wieder abgewiesen wird (dort hatte ich zuvor nur Umlaute zusätzlich erlaubt).
Echt verzwickt das Ganze, fürchte ich :(
Grüße

Re: [Erledigt] CC: Funktion zur Prüfung von Mailadressen

3. August 2016 10:59

Ich meinte unmittelbar vor der Zuweisung der Mailadresse, nicht schon bei der Prüfung. :-?

Gruß Fiddi