Mails per automation einlesen

3. September 2014 15:25

Hallo zusammen,

ein Kunde hatte folgenden Wunsch:

Navision soll Rechnungen per Outlook anhängen und die Mail für den Kunden "vorarbeiten" - nichts wildes wie bekannt sein sollte.
Der zweite part ist doch schon eher ne harte Nuss. Die Mails sollen mit Empfangs- bzw. Lesebestätigung verschickt werden und ein NAS-Job soll regelmäßig ein Postfach nach diesen Bestätigungen durchforsten um dann in Navision zu markieren "Kunde hat Rechnung erhalten".

Meine Probleme dabei sind folgende:
- Ich bin der Anfänger vor dem Herrn in Punkto Automations/DotNet
- Ich weiß nicht einmal ob ein NAS-User ohne ein offenes Outlook oder zumindest MAPI auch nur irgendwas von einem Mailserver abholen kann

Mein bisheriger "Exprimentalcode" sieht wie folgt aus: (kann so einigen wahrscheinlich bekannt vorkommen ;))
Code:
---------------------------VAR------------------------
Name   DataType   Subtype   Length
outlookapplication   Automation   'Microsoft Outlook 14.0 Object Library'.Application   
outlookemail   Automation   'Microsoft Outlook 14.0 Object Library'.MailItem   
outlooknamespace   Automation   'Microsoft Outlook 14.0 Object Library'.NameSpace   
outlookitems   Automation   'Microsoft Outlook 14.0 Object Library'.Items   
outlookMAPIFolder   Automation   'Microsoft Outlook 14.0 Object Library'.MAPIFolder   
-------------------------------------------------------
IF ISCLEAR(outlookapplication) THEN
  CREATE(outlookapplication,FALSE,TRUE);

outlooknamespace := outlookapplication.GetNamespace('MAPI');
outlooknamespace.Logon('','',FALSE,FALSE);

outlookMAPIFolder := outlooknamespace.GetDefaultFolder(6);

outlookitems := outlookMAPIFolder.Items;

i:=1;
endofloop:=outlookitems.Count;

WHILE i<=endofloop DO BEGIN
  outlookemail:=outlookitems.Item(i);
  MESSAGE(outlookemail.MessageClass());
  i:=i+1;
END;


outlooknamespace.Logon('','',FALSE,FALSE);
Hier habe ich schonmal versucht die ersten 2 Parameter mit meiner Domänenanmeldung zu füllen und auf dem PC von einem Kollegen somit mein Postfach abzurufen. Leider ignorierte outlook dies vollkommen.

MESSAGE(outlookemail.MessageClass());
Wenigstens konnte ich feststellen, dass "REPORT.IPM.Note.IPNRN" als Rückgabewert hier eine Lesebestätigung markiert.

Vielleicht habe ich nen massiven Denkfehler bei dem Konstrukt des NAS-Users bzw. der Nutzeroberfläche die diesem User zur Verfügung steht, aber aktuell weiß ich beim besten Willen nicht wie ich einem NAS-User ein eigenes E-Mail-Konto hinzufügen könnte und damit aus der NAS die Anmeldung an Outlook/Exchange und die Abholung der Mails zu organisieren.

Wie man unschwer erkennen kann bin ich hier noch total am hakeln und schreibe hier einfach mal wieder was in der Hoffnung auf einen kleinen aber feinen Denkanstoß oder einen Experten der mir sagen kann ob ich das Projekt direkt knicken kann.

Mit freundlichen Grüßen
Sipa aka Paul

Re: Mails per automation einlesen

3. September 2014 16:38

Hallo,

dem Dienst "NAS" wird ja ein Domain Account hinterlegt.
Dieser User muss natürlich auf den Exchange Server die entsprechenden Berechtigungen haben.

Woran du dich orientieren kannst, ist die "E-Mail Protokollierung" in NAV 2013 (als Stichwort danach suchen).
Da wird auch mit dem NAS ein E-Mail Ordner ausgelesen. Zwar ist die Anforderung eine andere, aber das Prinzip zählt :-)


Gruß
Aydin

Re: Mails per automation einlesen

3. September 2014 16:42

Danke für den Tipp!
Aber genau ist mein Problem gewesen: Das Prinzip fehlte mir :lol:

Ich werde es mir mal anschauen ;)