Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: svarne am 06.07.06 - 09:07:59

Titel: Problem mit dem Mailversand nach einem ODBC- Adressimport
Beitrag von: svarne am 06.07.06 - 09:07:59
Hallo,

ich habe ein Problem mit dem Mailversand nach einem ODBC- Adressimport.

Hier erstmal ein Ausschnitt des Agenten:

Call mylog.OpenAgentLog
   strODBCName="WARTPROD"
   strUserID="AAA"
   strPassword="BBB"
   Set db=session.CurrentDatabase
   nResult=conn.ConnectTo(strODBCName, strUserID, strPassword)
   If Not nResult Then
      Call mylog.LogAction("No ODBC Connection")
      Call mylog.Close   
      Exit Sub   
   End If
   Set qry.Connection=conn
   Set result.Query=qry
   Print "Connection to "+strODBCName+" established"
   qry.SQL="SELECT * FROM WART_PRD.WTGTOMAIL WHERE  WART_PRD.WTGTOMAIL.ERLEDIGT=0 AND  WART_PRD.WTGTOMAIL.ERLEDIGTAM Is Null;"
   Call result.Execute
   
   If result.IsResultSetAvailable Then
      Do
         result.NextRow
         strRecipient = result.GetValue("EMPFAENGER", strRecipient)
         Print strRecipient
         strSubject=result.GetValue("BETREFF", strSubject)
         strAttFilePath=result.GetValue("ANHANG", strAttFilePath)
         Set maildoc = New NotesDocument(db)
         maildoc.Subject=strSubject
         maildoc.Form="Memo"
         Set rtitem = New NotesRichTextItem(maildoc, "Body")
         maildoc.SendTo=strRecipient
         If Not strAttFilePath="" Then   
            If Not FileExists(strAttFilePath) Then
               maildoc.WTGFailure="Dateifehler"            
               Call rtitem.AppendText("File "+strAttFilePath+" not found")
            Else
               Set object=rtitem.EmbedObject(EMBED_ATTACHMENT, "", strAttFilePath)                  
               
            End If
         End If
         maildoc.SaveMessageOnSend = True
         On Error 4294 Goto error_label
         Call maildoc.send(False)
         'Call maildoc.save(True,True)
         'Print Err
         
resume_label:
         Call result.SetValue("ERLEDIGT", -1)
         Call result.SetVALUE("ERLEDIGTAM", Now)
         Call result.UpdateRow()
      Loop Until result.IsEndOfData
      result.Close(DB_CLOSE)
   Else
      Call mylog.LogAction("NO Result Set available")
      Call mylog.Close
      Call conn.Disconnect
      Exit Sub
   End If
   
   Call conn.Disconnect
   Call mylog.Close   
   Exit Sub
   
error_label:
   Call maildoc.save(True, True)
   Call maildoc.PutInFolder("Fehler")
   Goto resume_label
End Sub



Das funktioniert auch soweit das die Adressen aus der Access/SQL DB importiert und in das SendTo- Feld eingetragen werden; siehe LOG:

04.07.2006 13:09:18   AMgr: Agent ('WTGTOMAIL' in 'mail\wartout.nsf') printing: Connection to WARTPROD established
04.07.2006 13:09:18   AMgr: Agent ('WTGTOMAIL' in 'mail\wartout.nsf') printing: peter.XXX@XYZ.de, petra.YYY@XYZ.de
04.07.2006 13:09:18   Router: Transferred 1 messages to „xServerX“ via Notes


Im LOG des Mail-Routers sehe ich dann aber das nur die erste Adresse aufgelöst wird und von der zweiten Adresse erscheint nur der Name; siehe LOG:

04.07.2006 13:09:23   Router: Message 003D46CE transferred to „xServerX“  for peter.XXX@XYZ.de, petra.YYY via Notes


Wenn man die Mail aus dem Ordner „Gesendet“ des Mailfiles erneut versendet wird diese korrekt an beide Empfänger zugestellt.

So und nun kommt Ihr  ;D
Titel: Re: Problem mit dem Mailversand nach einem ODBC- Adressimport
Beitrag von: m3 am 06.07.06 - 09:13:41
SendTo ist üblicherweise ein Multivalue Field, was in LotusScript üblicherweise durch ein Array abgebildet wird. Probier mal, die Empfänger in ein Array zu schreiben und dieses dem Feld zuzuweisen (siehe ReplaceItemValue in der Designer Hilfe).
Titel: Re: Problem mit dem Mailversand nach einem ODBC- Adressimport
Beitrag von: m3 am 06.07.06 - 12:58:43
Lieber svarne,

ich antworte hier statt über die private Nachricht.

Klar ist es eilig, klar hast Du zu wenig Ahnung von LotusScript. Das haben wir ja schon öfter hier gesehen.

Ja, ich denke, man kann mich als "Notes-Profi" bezeichnen, auch wenn ich täglich dazu lerne.

Nein, dazu habe ich nichts "in der Schublade", ich bin aber gerne bereit, Euch gegen ein entsprechendes Salär weiter zu helfen. Auch andere in diesem Forum machen das sicherlich gerne.

Falls Du kein Geld ausgeben möchtest, stell Deine konkreten Fragen hier herein, wir helfen Dir gerne weiter.

Und noch was: Klar kann man mit Copy & Paste "sooo schööön" arbeiten, aber dabei lernt man nichts und dafür ist das Forum eigentlich da, vor allem, wenn es um so Grundsätzliches wie den Umgang mit Multivalue-Feldern und Arrays geht.
Titel: Re: Problem mit dem Mailversand nach einem ODBC- Adressimport
Beitrag von: svarne am 06.07.06 - 14:37:42
Hallo m3,

danke für Deine aufrichtige Antwort und weiterhin viel Spaß!!

Dann schaun wir doch mal wie's weitergeht, ALLES WIRD GUT  ;)

svarne
Titel: Re: Problem mit dem Mailversand nach einem ODBC- Adressimport
Beitrag von: LN4ever am 08.07.06 - 17:54:21
Wenn du die Zeile

maildoc.SendTo=strRecipient

ersetzst durch

maildoc.SendTo=Trim(Split(strRecipient,","))

wird es vermutlich klappen.

Und wenn du vorher noch abprüfst, daß Recipient nicht leer ist, wird es weniger Fehler geben.
Titel: Re: Problem mit dem Mailversand nach einem ODBC- Adressimport
Beitrag von: svarne am 11.07.06 - 11:08:24
Danke LN4ever,

das werde ich mal testen. Momentan habe ich das so gelöst, dass ich einfach mehrere Mails aus dem Access generiere.