Domino 9 und frühere Versionen > ND6: Entwicklung

mein erstes Script...Walle Walle wehe wehe

(1/4) > >>

EUWE_MAX:
Mein erstes Script läuft natürlich nicht wie gewünscht...

Bei mir verhält es sich wie mit dem Zauberlehrling von Goethe.
Ich habe gleichsam ein Flut von Mails erzeugt, jede Mail - auch Bestätigungsmails - enthält nun ein ReturnReceipt = "1" und DeliveryReport= "C"

die Mails die ich rief, werd ich nun nicht mehr los.....
Walle Walle wehe wehe
"In die Ecke,
Besen, Besen!
Seids gewesen.
Denn als Geister
ruft euch nur zu diesem Zwecke,
erst hervor der alte Meister


Mein Script soll folgendes leisten
Mail kommt in den Eingangskorb
Eine Regel verschiebt die Mail anhand des Betreffs in einen Ordner (um es mir einfacher zu machen)

Der Agent durchsucht den Ordner
setzt den Absender der Mail auf edi@xxx.de
verschickt die Mail unverändet (Subject, Body, Anhang ) an eine Mail-Gruppe
ReturnReceipt = "1" und DeliveryReport= "C"
verschiebt sie in einen Ordner "fertig"
und löscht die Mail aus dem UrsprungsOrdner

jetzt haben aber auch die Bestätigungsmails ein ReturnReceipt und DeliveryReport
und der Anhang bleibt auf der Strecke !?


weißt einer der alten Meister evt. woran es bei diesen beiden Punkten hakt !?


Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim dc As NotesDocumentCollection
Set dc = db.UnprocessedDocuments
Dim docIn As NotesDocument 'docin ist das ankommende Memo
Dim docOut As NotesDocument 'docout ist das weitergeleitete Memo

'Setzen der Weiterleitungsadresse
Dim stRecipient As Variant

Set docIn = dc.GetFirstDocument
While Not docIn Is Nothing

'von wem?
Dim stFrom As String
Dim Position As Long
Dim Temp As Variant
stFrom = "edi@xxx.de"

'Memo erstellen
Set docOut = db.CreateDocument
Call DocIn.copyallitems(docOut)
'hier stehen die Empfänger <sendto> als Gruppe
docOut.SendTo = "#CROWN"
docOut.AltFrom = "EDI@xxx.de"
docOut.Principal = stFrom
docOut.ReturnReceipt = "1"
docOut.Importance = "1"
docOut.DeliveryReport= "C"
docOut.SaveMessageOnSend = True
Call docOut.Send(False)

'weiter
Call s.UpdateProcessedDoc(docIn)
'hier immer jeweils die Ordner eintragen, die man benötigt- DocIn heisst das Original-Memo
Call docIn.PutInFolder("CROWN fertig")
'Die Ordnernamen sind Case-sensitiv
' Nach dem folgenden Schritt ist es dann weg aus dem Ursprungsordner
Call docIn.RemoveFromFolder( "CROWN" )
Set docIn = dc.getnextdocument(docIn)

Wend


End Sub

schönen Gruss Max

koehlerbv:
So ganz verstehe ich Dein Posting noch nicht, Max. Du forderst in Deinem Code ReturnReceipt und DeliveryReport ausdrücklich an, beklagst Dich dann aber den zunehmenden Mailverkehr ? Da blicke ich noch nicht durch.
Unklar ist mir ehrlich gesagt, warum Attachments auf der Strecke bleiben sollen. Der Code sieht da sauber aus. Aber: Warum speicherst Du denn die Mails doppelt ? Tut das not, die Benachrichtigungsmails auch noch aufzuheben ? Ansonsten könntest Du ja die Adressatenfelder und das Subject etc. im Original austauschen und dieses dann versenden. Dann muss natürlich das docOut.SaveMessageOnSend 'raus.

Sag' mal an.

Bernhard

EUWE_MAX:
Bernhard, danke für Dein Interesse -
Vorab: bitte aber um Nachsicht. Habe bisher nicht programmiert und fange jetzt ab, mich  mittels Buch da zu orientieren. Sprich vieles was Euch sonneklar ist , ist mir völlig unklar, böhmische Dörfer...

Also ich erhalte über dieses Script auf eine Mail hunderte von Mails zurück.. Offensichtlich haben auch die Bestätigungsmails
einen DeliveryReport

Das ist momentan das Schlimmste

Anhang klappt im Test nicht, bleibt auf der Strecke

Die Situation ist die, dass der Kunde abundwann behauptet eine Mails von uns nicht erhaltenzu haben, obwohl er die laut Mailprotokoll erhalten hat.

Deswegen die Bestätigungsmails, dass wir ihm die ggf. zeigen können.

Im Grunde geht es darum: Mail wird automatisch von einem UNIX-SERVER erzeugt und and EDI geschickt. Der Betreff ist immer eindeutig und soll auch nicht verändert werden.
Die Mail soll unverändert weiterverschickt werden. Als Versender soll nicht mehr der UNIX-Server drin stehen - was beim Weiterleiten über Regeln der Fall ist -  sondern EDI.
Die Mail soll  ein Delivery und/oder Receipt Feld erhalten.

Der Eingangskorb soll (auf Dauer - nicht minütlich) ) immer leer sein, denn wenn nicht leer, dann liegt ne Fehlersituation vor.

Max

animate:
wegen der Attachments:
kannst du mal probieren, statt dieser zwei Zeilen

Set docOut = db.CreateDocument
Call DocIn.copyallitems(docOut)

diese zu nehmen

Set docOut = docIn.CopyToDatabase(db)

das ist nur eine andere Möglichkeit, eine Kopie eines DOkuments zu erstellen. Nur ein Versuch.

animate:
den Vergleich mit dem Zauberlehrling und der Mailflut find ich sauwitzig.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln