Domino 9 und frühere Versionen > ND7: Entwicklung

In E-Mail Rückantwort fehlt das FROM-Feld

(1/2) > >>

Legolas:
Hallo Forum,

ich habe folgendes Problem und weis nicht weiter.

Ich habe einen Mail-In Agenten in einer Maildatenbank der eine Bestätigungsmail (Autoreply) versenden soll.
Das Problem was ich habe ist allerdings, dass in der Reply-Mail das "From" Feld nicht mehr vorhanden ist, ovbwohl es explizit befüllt wurde.

Hierdurch wird die Mail (z.B in GMX) als Mail ohne Absender angezeigt und somit als Spam behandelt.

Wird die Mail "normal" vom Client mit diesem Code versendet, funktioniet es.

Client Server: 7.x

Hat hier jemand eine Idee woran das liegen kann?

Gruß und danke im Voraus
Bernd


Hier der Code:

Sub Initialize

   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim IncomEmail As NotesDocument
   Dim ReplyEmail As NotesDocument
   Dim stRecipient As String
   
   stRecipient = "max.mueller@firma.de"
   Set db = s.CurrentDatabase
   Set dc = db.UnprocessedDocuments
   
   Set IncomEmail = dc.GetFirstDocument
   While Not IncomEmail Is Nothing
      
      Dim stFrom As String
      Dim stSendTo As String
      Dim Position As Long
      Dim Temp As String
      
      stFrom = IncomEmail.From(0)
      stSendTo = Ucase$( IncomEmail.SendTo(0) )
      
      ' Wenn Mailempfänger = "max.mueller@firma.de" dann Rückantwort erstellen und an den Absender zurücksenden
      If Instr(1, stSendTo, Ucase(stRecipient )) <> 0 Then
         'if an internet address format as name@internetdomain@notesdomain,
         'regardless if with my notesdomain
         If Instr(1, stFrom, "@") <> 0 Then
            Position = Instr(1, stFrom, "<")
            Temp = Right(stFrom, (Len(stFrom) - Position))
            stFrom = Left(Temp, (Len(Temp) - 1))
         Elseif IncomEmail.hasitem("Principal") Then
            stFrom = IncomEmail.Principal(0)
         End If
         
         'create Memo
         Set ReplyEmail = db.CreateDocument
         ReplyEmail.SendTo = stFrom
         ReplyEmail.Subject = "Re.: " + IncomEmail.Subject(0)
         ReplyEmail.Body = "Thank you"
         ReplyEmail.Principal = stRecipient
         ReplyEmail.From = stRecipient
         ReplyEmail.SaveMessageOnSend = True
         Call ReplyEmail.Send(False)
      End If
      
      Call s.UpdateProcessedDoc(IncomEmail)
      Set IncomEmail = dc.getnextdocument(IncomEmail)
   Wend
End Sub

m3:
Lotus Notes/Domino Agent FAQ updated 4/18/07 by Julie Kadashevich

1) How to change the apparent sender of the agent generated mail.
Information on three different ways to do it with code samples has been moved to the "Troubleshooting agents" article.
http://www-10.lotus.com/ldd/today.nsf/62f62847467a8f78052568a80055b380/ef1565a0b202808285256c94004fd0fb?OpenDocument&Highlight=0,kadashevich

Related information not covered in the article:
What is $INetFrom:
http://www.notes.net/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/7de5b937e6b113438525680f006f3597?OpenDocument&Highlight=0,inetfrom
http://www.notes.net/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/0a2fb58af0864fff852568e30055b386?OpenDocument&Highlight=0,inetfrom
And if you have problems even if you have used the right syntax and followed instructions:
http://www.notes.net/46dom.nsf/7d6a87824e2f09768525655b0050f2f2/61c58ede8a7178458525693c006129b6?OpenDocument
From field has format name%doman@company.com, how do to drop %doman portion:
http://www.notes.net/46dom.nsf/7d6a87824e2f09768525655b0050f2f2/9253ec348d06535b852569f20067617b?OpenDocument


2

Legolas:
Hallo,

bin mir nicht ganz sicher ob ich diese Antwort richtig verstehe!  ???

Um Missverständnissen vorzubeugen:
Ich möchte nicht den Absender der ursprünglichen E-Mail abändern sonder ein neues Mail an den Absender zurücksenden.
Der Absender für die Replay-Mail ist immer auch der Besitzer der Maildatenbank.

koehlerbv:
Hallo Bernd,

was Du richtig verstehen musst (und das findest Du auch in den verlinkten Artikeln) ist das Funktionieren der Methode NotesDocument.Send: Diese setzt immer den Namen des aktuellen Benutzers ein. Wenn es sich um eine Internet-Adresse handeln muss, hast Du bei einem Server natürlich schlechte Karten ...
Du solltest darüber nachdenken, dass Mail nicht zu "Senden", sondern in der MAIL.BOX (oder MAILx.BOX - das solltest Du gleich mit berücksichtigen) anzulegen und zu speichern. Den Rest übernimmt dann der Router - ohne Send-Methode.

Weiterhin:
Du willst immer mit dem aktuellen Eigentümer des Mailfiles anworten, hast das aber hardcodiert. Warum liest Du das nicht aus dem "(CalendarProfile)" aus? Ich finde auch weitere Teile in diesem Code, die völlig unnötig sind und darauf hindeuten, dass Du das Zeugs irgendwo "gefunden" hast. Mach sowas nicht! Nimm derartigen Code als Beispiel und Lernstoff oder Anti-Beispiele und baue es nach dem Durchdenken immer ganz neu auf entsprechend Deiner Kenntnisse und Standards.

HTH,
Bernhard

Legolas:
Hallo Bernhard,

der Code ist reiner Testcode.
Der soll so nicht zum Einsatz kommen.
Mir ging's hier vor allem um das Verständnis warum die Reply-Mail nicht korrekt versendet wird.

Eine Frage ist aber für mich immer noch offfen!
Warum wir das Feld "From" nicht mit übertragen?

Gruß
Bernd

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln