Autor Thema: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken  (Gelesen 4375 mal)

Offline mophat

  • Frischling
  • *
  • Beiträge: 8
Hallo zusammen, wir benötigen für die Firma eine Mailbox (info@mydomain.com) mit der alle die damit arbeiten die Info-Adresse als Absender bekommen.

In Outlook sieht man ja ansonsten "Mitarbeiter1 hat im Auftrag von Info diese Mail gesand"... >:(

Nun gut Ich habe nun eine DB erstellt bei welcher dann beim Versand ein Agent getriggert wird und de untenstehenden Code ausführt:

------------------------------------------------------------------------------------------------------
Sub Initialize
   
   'Main Document
   Dim dbA As New NotesDatabase ( "SERVER1/XXX/YY", "IT\devmailbox.nsf" )
   Dim viewA As NotesView
   Dim docA As NotesDocument
   Set viewA = dbA.GetView( "Unsend Mails" )
   Set docA = viewA.GetFirstDocument
   
   'Sending Document
   Dim s As New notessession
   Dim dbB As NotesDatabase
   Dim Mailbox As NotesDatabase
   Dim docB As NotesDocument
   Dim item As NotesItem
   
   Set dbB = s.CurrentDatabase
   Set Mailbox = s.GetDatabase(dbB.Server, "mail.box")
   Set docB = New NotesDocument(Mailbox)
   Set item = docB.GetFirstItem( "Body" )   
   
   ' Values for sending
   docB.SendTo =    docA.GetItemValue( "SendTo" )   
   docB.Recipients =    docA.GetItemValue( "SendTo" )   
   docB.From =    "CN=Dev Mailbox/O=XXX/C=YY"
   docB.form =    "Memo"
   docB.Subject =    docA.GetItemValue( "Subject" )
   docB.Body  =    docA.GetItemValue( "Body" )   
   
   ' Save and close Docs
   Call docA.ReplaceItemValue ("myMailStatus", "is send")
   Call docA.save(True, False)
   Call docB.save(True, False)
   
End Sub
------------------------------------------------------------------------------------------------------

Soweit so gut.

Nun habe ich aber nur noch 2 Probleme:

1. Die Mails werden immer als Plaintext versandt und somit ist auch keine Formatierung etc. möglich
2. Es werden ebenfalls keine Anhänge mitgeschickt (was aber auch mit Punkt 1 zusammenhängt)

Kann mir jemand ein Beispiel zeigen womit ich diesen Agent ermöglich dass er doch quasi Richtext/HTML mit dem Content-Type: multipart/related schickt?

Bin für jede Antwort dankbar  ;D
Dank im Voraus für alle Feedacks
Volkan S.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Hi,

Schau Dir doch einmal die Methode "CopyItem" der "NotesDocument"-Klasse an.
Vielleicht kannst du damit etwas Anfangen in Bezug auf Dein Body-Feld.

Andreas

Offline mophat

  • Frischling
  • *
  • Beiträge: 8
Habs schon versucht klappt leider nicht oder ich bin nicht fähig  :-:
Der Debugger meinte immer dass das Feld nicht auf sich selbst kopiert werden könne (obwohl es ein anderes war).

Ist es möglich anhand meines Codes ein Beispiel für mich zu erstellen?

Danke

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Testen wir mal.


Sub Initialize
   
   'Main Document
   Dim dbA As New NotesDatabase ( "SERVER1/XXX/YY", "IT\devmailbox.nsf" )
   Dim viewA As NotesView
   Dim docA As NotesDocument
   Set viewA = dbA.GetView( "Unsend Mails" )
   Set docA = viewA.GetFirstDocument
   
   'Sending Document
   Dim s As New notessession
   Dim dbB As NotesDatabase
   Dim Mailbox As NotesDatabase
   Dim docB As NotesDocument
   Dim item As NotesItem
   
   Set dbB = s.CurrentDatabase
   Set Mailbox = s.GetDatabase(dbB.Server, "mail.box")
   Set docB = New NotesDocument(Mailbox)
   Set item = docA.GetFirstItem("Body")   

   ' Values for sending
   docB.SendTo =    docA.GetItemValue( "SendTo" )   
   docB.Recipients =    docA.GetItemValue( "SendTo" )   
   docB.From =    "CN=Dev Mailbox/O=XXX/C=YY"
   docB.form =    "Memo"
   docB.Subject =    docA.GetItemValue( "Subject" )
   Call docB.CopyItem(item, "Body")
   
   ' Save and close Docs
   Call docA.ReplaceItemValue ("myMailStatus", "is send")
   Call docA.save(True, False)
   Call docB.save(True, False)
   
End Sub

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Wenn Du den Absender ändern willst, reicht es nicht aus,einfach das From feld zu beschreiben, da dieses beim Abschicken vom Router erstellt wird.
In diesem Forum gibts einige Anleitungen wie man sowas hinbekommt (Mail in Mail.box erstellen, etc)
« Letzte Änderung: 07.03.06 - 12:41:54 von umi »
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
@umi,

Was macht denn mophat?

Zitat
Set dbB = s.CurrentDatabase
Set Mailbox = s.GetDatabase(dbB.Server, "mail.box")
Set docB = New NotesDocument(Mailbox)

Andreas

Offline mophat

  • Frischling
  • *
  • Beiträge: 8
@ascabg

Danke ascabg nun habe seltsame Phänomene.

- Mit nur Text in der Mail wird es immer als Plaintext gesandt.
- Mit Attachment oder einem Bild etc. drin erscheint mal das Attachment als jpg im Outlook und teils kommt diese Fehlermeldung im Notes Client: "Notes error: Note item not found (Body)

Der jetzige Code ist:


Code
Sub Initialize
	
	'Main Document
	Dim dbA As New NotesDatabase ( "SERVER1/XXX/YY", "IT\devmailbox.nsf" )
	Dim viewA As NotesView
	Dim docA As NotesDocument
	Set viewA = dbA.GetView( "Unsend Mails" )
	Set docA = viewA.GetFirstDocument
	
	'Sending Document
	Dim s As New notessession
	Dim dbB As NotesDatabase
	Dim Mailbox As NotesDatabase
	Dim docB As NotesDocument
	Dim item As NotesItem
	
	Set dbB = s.CurrentDatabase
	Set Mailbox = s.GetDatabase(dbB.Server, "mail.box")
	Set docB = New NotesDocument(Mailbox)
	Set item = docA.GetFirstItem("Body")   
	
	' Values for sending
	docB.SendTo = 	docA.GetItemValue( "SendTo" )	
	docB.Recipients = 	docA.GetItemValue( "SendTo" )	
	docB.From = 	 "CN=Dev Mailbox/O=XXX/C=YY"
	docB.form = 	"Memo"
	docB.Subject = 	docA.GetItemValue( "Subject" )
                Call docB.CopyItem(item, "Body")	
	
	' Save and close Docs
	Call docA.ReplaceItemValue ("myMailStatus", "is send")
	Call docA.save(True, False)
	Call docB.save(True, False)
	
End Sub


Wozu das hier:

Zitat
Set dbB = s.CurrentDatabase
Set Mailbox = s.GetDatabase(dbB.Server, "mail.box")
Set docB = New NotesDocument(Mailbox)

Die Mail wird im Mailrouter direkt erstellt so das die Notes ID des Benutzers keinen Einfluss darauf hat.
Mit dieser Methode umgeht man das im Mailheader und meistens auch in der irgendetwas vom Absender sichtbar ist.

z.B. hans@mycompany.com soll eine Email als chef@mycompany.com schicken, dies soll natürlich nicht nachvollziehbar sein das er dies nicht selbst gesandt hat / steht auch stellvertretend für sales@, info@, promotion@ etc. Adressen.

Falls man die Mail in der DB erzeugt und dann verschickt so ist im Mailheader immer ersichtlich die Absenderadresse desjenigen der die Mail erstellt hat => also z.B. hans@mycompany.com und nicht chef@mycompany.com.
Es erscheint auch in Outloox XP/2003 immer beim Absender: Diese Nachricht wurde von hans@mycompany.com im Auftrag von chef@mycompany.com gesendet"  >:(

Daher diese Aktion, für Textnachrichten geht es ja nur bei Attachments scheint dies nicht richtig zu funkionieren.

thx
Volkan

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Kleine Frage.

Ist denn sichergestellt, dass "DocA" immer ein Feld "Body" hat?

Andreas

Offline mophat

  • Frischling
  • *
  • Beiträge: 8
Ja die 2 Formulare sind identisch, das erste dient nur als Vorlage welches dann beim erstellen der Mail die Feldinhalte kopiert.

Hat nur folgende Felder:

- SendTo (Text)
- Subject (Text)
- Body (Richtext)
- myMailStatus (Text)

mehr nicht.

Offline mophat

  • Frischling
  • *
  • Beiträge: 8
Kann mir keiner helfen?  :'(

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #10 am: 08.03.06 - 09:13:00 »
Hast du schon mal geprüft ob das Item überhaupt vorhanden ist?
if item is noting then
print "Da fehlt der Körper!"
end if
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline mophat

  • Frischling
  • *
  • Beiträge: 8
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #11 am: 15.03.06 - 09:33:04 »
Bei der Abfrage ob da was ist bekomme ich die Meldung: "Type mismatch" bei "If item Is noting Then"


Code
...
Set docB = New NotesDocument(Mailbox)
Set item = docA.GetFirstItem("Body")   

If item Is noting Then
	Print "Da fehlt der Körper!"
End If

' Values for sending
docB.SendTo = 		docA.GetItemValue( "SendTo" )	
docB.Recipients = 	docA.GetItemValue( "SendTo" )	

Ich habe jetzt keinen Ansatz mehr wie ich dem Mail Doc beibringen soll ein Attachment mitzuschicken...  :-:

Der nicht mehr weiterkommenden Volkan  ???


Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #12 am: 15.03.06 - 09:53:00 »
Moin.

Schreib mal Nothing anstatt noting.

Gruss

André
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #13 am: 15.03.06 - 09:58:22 »
Man kann das Rad auch immer wieder neu erfinden:

http://www.automatedlogic.com/domblog.nsf/dx/DominoTeamMailbox
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline mophat

  • Frischling
  • *
  • Beiträge: 8
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #14 am: 15.03.06 - 10:15:50 »
@Thomas Schulte

Danke aber im Outlook erscheint mit der Team Mailbox wieder "benutzer@mydomain.com wurde gesendet im Auftrag von sales@mydomain.com".

Genau das versuche ich hier zu verhindern.

Das heisst, wenn jemand für sales@mydomain.com eine Mail verschickt dann soll nirgends (auch nicht im Mailheader) die Mailadresse vom Mitarbeiter drin stehen sondern nur die vom Sales.

Ansonsten eine sehr gute DB  ;D

@DerAndre

Habe auf Nothing geändert (sorry, schreibfehler), nun kommt er aber mit der Meldung: "Notes error: Note item not found (Body)" bei der Zeile "Call docB.CopyItem(item, "Body")"

Ne Ahnung?
Danke

« Letzte Änderung: 15.03.06 - 10:23:05 von mophat »

Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #15 am: 15.03.06 - 12:25:19 »
Hallo,
hatte eben erst so was ähnliches. nach meinem Verständnis brauchst du Richtextitems für die Attachements. Hast aber dein Item nur als Notesitem deklariert. Probier' mal

'Main Document
   Dim dbA As New NotesDatabase ( "SERVER1/XXX/YY", "IT\devmailbox.nsf" )
   Dim viewA As NotesView
   Dim docA As NotesDocument
   Set viewA = dbA.GetView( "Unsend Mails" )
   Set docA = viewA.GetFirstDocument
   
   'Sending Document
   Dim s As New notessession
   Dim dbB As NotesDatabase
   Dim Mailbox As NotesDatabase
   Dim docB As NotesDocument
   Dim item As Notesrichtextitem
   Set dbB = s.CurrentDatabase
   Set Mailbox = s.GetDatabase(dbB.Server, "mail.box")
   Set docB = New NotesDocument(Mailbox)
   Set item = docA.GetFirstItem("Body")   
   
   ' Values for sending
   docB.SendTo =    docA.GetItemValue( "SendTo" )   
   docB.Recipients =    docA.GetItemValue( "SendTo" )   
   docB.From =    "CN=Dev Mailbox/O=XXX/C=YY"
   docB.form =    "Memo"
   docB.Subject =    docA.GetItemValue( "Subject" )
                'Call docB.CopyItem(item, "Body")
                Set Body=New NotesRichTextItem( docB,"Body" )   
                Call Body.AppendRTItem(item )
   
   ' Save and close Docs
   Call docA.ReplaceItemValue ("myMailStatus", "is send")
   Call docA.save(True, False)
   Call docB.save(True, False)

Gruß
Barbara

Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #16 am: 15.03.06 - 12:39:47 »
geht auch:

If item.Type= RICHTEXT Then   
         Call item.CopyItemToDocument( docB, "Body" )
      End If

Offline mophat

  • Frischling
  • *
  • Beiträge: 8
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #17 am: 15.03.06 - 13:10:35 »
@Barbara

Danke, Bilder werden jetzt als Anhang mitgesendet nur leider nicht andere Dateitypen wie PDF, XLS usw???

In der Nachricht steht dann im Outlook "(See attached file: Test Datei.xls)", nur der Anhang ist nicht da und es ist auch kein Base64 in Header enthalten.

 :-:

Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Re: Absenderkennung ändern und Richtext bzw. Anhänge mitschicken
« Antwort #18 am: 15.03.06 - 13:23:12 »
und wenn du den Anhang löst, um ihn anschließend in docB wieder einzufügen?
Schau mal in der Notesembeddedobject class nach. Muss jetzt leider weg.

Barbara

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz