Autor Thema: Anhang an ein E-Mail  (Gelesen 5143 mal)

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Anhang an ein E-Mail
« am: 24.11.06 - 11:44:19 »
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument
   
   Set db = session.CurrentDatabase
   Set doc = New NotesDocument( db )
   
   doc.Form = "Memo"
   doc.SendTo = uidoc.FieldGetText( "SendTo" )
   doc.CopyTo = uidoc.FieldGetText( "CopyTo" )
   doc.Subject = uidoc.FieldGetText("dspMailForNumber") + uidoc.FieldGetText( "MailSubject" )
   doc.Body = uidoc.FieldGetText( "MailBody" )
   
   Call doc.Send(False)
   


Soweit so gut, das funktioniert... aber ich würde nun gerne noch einen Anhang per Mail verschicken wenn irgend eine Datei ins RICHTEXT-Feld (namens "MailBody") eingefügt wurde.
Kann mir jemand sagen wie ich den Code ergänzen muss?! Meine versuche schlugen bis anhin leider alle fehl und ich glaube auch nicht das ich irgendwo hier im Forum eine lösung zu Meinem Problem gefunden hätte.
Ich bin leider noch ziemlich anfänger bei Lotus Script. Vielen Dank für die Unterstützung

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Anhang an ein E-Mail
« Antwort #1 am: 24.11.06 - 11:46:36 »
EmbedObject
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang an ein E-Mail
« Antwort #2 am: 24.11.06 - 11:51:21 »
Na,  ob das so einfach wird ... Wurde das uidoc bereits gespeichert (aus dem Code geht leider nicht mal hervor, wie uidoc instantiiert wurde)? Dann wäre ggf. ein NotesItem.CopyToDocument der einfachste Weg.

Wurde es noch nicht gespeichert (und soll auch nicht gespeichert werden), dann wird es komplizierter, weil dann der Inhalt des RichTextFeldes noch nicht im Backend zur Verfügung steht. Aber das wurde hier tatsächlich schon oft genug diskutiert und erklärt.

Bernhard

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Re: Anhang an ein E-Mail
« Antwort #3 am: 24.11.06 - 13:20:42 »
danke für die beiden schnellen antworten...

nee es ist und muss eigentlich nicht gespeichert werden. In diesem Fall geht es mir einfach darum das ich ein "Patient erfassen kann in einer Helpdesk db" wellche z.B. Patientendaten.doc in einem Richtext gespeichert hat.

nun sollte diese Datei einfach als Anhang ins Mail mitgeschickt werden...
wie wenn ich im Notes ein neues Memo mit anhang mache...

?!??!
   Set rtitem = New NotesRichTextItem( doc, "Body" )
   Set object = rtitem.EmbedObject _
   ( EMBED_OBJECT, "1-2-3 Worksheet", "", _
   "Quarterly Report" )

   doc.Attachment = object


******
vielleicht kann mir ja jemand helfen... es geht schlichtweg "nur" darum noch zu schauen ob im Feld namens "MailBody" noch ein Attachment ist...falls jaa soll er das auch noch mit versenden

ich danke für eure Hilfe, evtl. wäre ich auch dankbar wenn ihr mir einen Link zu einem schonmal besprochenen Thread geben könnte ich habe mit Suchen nie das gefunden was ich hier möchte...

grüsse ivan

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang an ein E-Mail
« Antwort #4 am: 24.11.06 - 13:40:59 »
Hallo Ivan,

also wenn das Ausgangs-Dokument gar nicht gespeichert werden soll, hast Du ein gewisses Problem: Das RichTextFeld Mailbody steht Dir dann - wie gesagt - im Backend nicht zur Verfügung, Du kannst also  auch nicht feststellen, ob da etwas enthalten ist.

Aus meiner Sicht der einfachste Workaround: Du arbeitest ja sowieso im Frontend. Was spricht dann dagegen, Dein Mail auch im Frontend zu erstellen? Dann kannst Du sehr wohl auf den Inhalt von "MailBody" zugreifen:
NotesUIDocument.GotoField
NotesUIDocument.Copy
Selbiges dann für Dein Mail-Dokument, nur dann halt eben mit Paste. Das klappt dann auch mit RichText-Feldern.

HTH,
Bernhard

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Re: Anhang an ein E-Mail
« Antwort #5 am: 24.11.06 - 13:45:32 »
Hallo Berhard,

dane für die Antwort, ich werde mein Code nun versuchen mit diesen Teilen und der Genialen Hilfe von Notes zu erweitern, vielleicht melde ich mich jaa nochmal wenn noch nicht ganz alles klar ist:D

aber schon im voraus vielen Herzlichen Dank, dass ihr euch auch mit Anfänger wie mir rumschlägt.

Liebe Grüsse aus der Schweiz

Ivan

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang an ein E-Mail
« Antwort #6 am: 24.11.06 - 13:56:40 »
Ivan, wir waren alle mal Anfänger. Das passt schon  ;)

Bernhard

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Re: Anhang an ein E-Mail
« Antwort #7 am: 24.11.06 - 14:38:40 »
Naja hier hab ich ein Bild von meiner Maske im Anhang.

Ehm und das mit dem GoToField war in etwa so gedacht?!

   Call uidoc.GoToField( "MailBody" )
   Call uidoc.Copy

   Call uidoc.GoToField("anhang")
   Call uidoc.Paste

oder kann ich dass, was ich hier uidoc.Copy mache gleich im Mail einfügen?!
geht wohl kaum oder?!
oder kann ich jetzt mit "EMBED_OBJECT" auf das File zugreifen?!

das test.txt sollte eigentlich "nur" noch mitgeschickt werden wenn ich auf senden klicke, der rest geht von alleine^^ oder hab ich ohne grössere Probleme geschaft.


   

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang an ein E-Mail
« Antwort #8 am: 24.11.06 - 14:49:15 »
Sorry, hatte da noch was vergessen:
   Call uidoc.GoToField( "MailBody" )
   Call uidoc.SelectAll   'DAMIT NOTES AUCH WEISS, WAS ZU KOPIEREN IST
   Call uidoc.Copy

Bernhard

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Re: Anhang an ein E-Mail
« Antwort #9 am: 24.11.06 - 14:52:18 »
Sorry, hatte da noch was vergessen:
   Call uidoc.GoToField( "MailBody" )
   Call uidoc.SelectAll   'DAMIT NOTES AUCH WEISS, WAS ZU KOPIEREN IST
   Call uidoc.Copy

Bernhard

ok danke, ja das klappt tip top...das verschiebt nun das File von einem Feld zum anderen, nun aber sollte es noch als Anhang mitgeschickt werden. und ich kann ja nicht einfach sagen doc.attachment = anhang oder so... was muss ich nun hier nehmen, bei text ist klar uidoc.FieldGetText aber beim Attachment?!

danke für die hilfe...


doc.Form = "Memo"
   doc.SendTo = uidoc.FieldGetText( "SendTo" )
   doc.CopyTo = uidoc.FieldGetText( "CopyTo" )
   doc.Subject = uidoc.FieldGetText("dspMailForNumber") + uidoc.FieldGetText( "MailSubject" )
   doc.Body = uidoc.FieldGetText( "MailBody" )

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Re: Anhang an ein E-Mail
« Antwort #10 am: 28.11.06 - 11:44:55 »
Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim Database As NotesDatabase
   
   Dim current As NotesDatabase
   Dim mailbox As New NotesDatabase("","")
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim maildoc As NotesDocument
   Dim doc As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim item As Variant
   Dim item_body As notesItem
   Dim item_sub As Variant
   Dim item_bodys As Variant
   
   
   Dim sendas As String
   
   sendas = "ivan.hunkeler@ksl.ch"
   
   '   Setzen der aktuellen E-Mail-Adresse des Users
'   Dim useremail As Variant
'   useremail = uidoc.FieldGetText( "HelpdeskSendTo" )
'   sendas = useremail(0)
   
   
' get handle to mail.box on the users current mail server
   Set Database = session.CurrentDatabase
   
' Aktuelles Dokument
   Set uidoc = workspace.CurrentDocument
   Set doc = uidoc.document
   
' Create a new document in the severs mail box
   Set maildoc = New Notesdocument(Database)
   maildoc.Form = "Memo"
   maildoc.From = sendas
   maildoc.SendFrom = sendas
' maildoc.SendTo = sendto
   
   item = uidoc.FieldGetText( "HelpdeskSendTo" )
   Call maildoc.ReplaceItemValue( "SendTo", item )
   
' maildoc.Recipients = sendto
   Call maildoc.ReplaceItemValue( "recipients", item )
   
' maildoc.Subject = subject
   item_sub = uidoc.FieldGetText( "HelpdeskMailSubject" )
   Call maildoc.ReplaceItemValue( "Subject", item_sub )
   
' maildoc.MailBody= Mailbody
'   item_bodys = uidoc.FieldGetText( "MailBody" )
'   Call maildoc.ReplaceItemValue( "Body", item_bodys )
   
'   Call rtitem.AppendText("item_bodys")
   
   
   maildoc.Body = uidoc.FieldGetText("MailBody")
   
   
'   uidoc.GotoField("MailBody")
'   uidoc.SelectAll
'   uidoc.Copy
'   uidoc.GotoField("Body")
'   uidoc.Paste
   
   
' Body-Feld
   Dim rtitemA As Variant
   Dim rtitemB As Variant
   
   Call doc.Save( True, False )
   Call uidoc.Save
   
   Set rtitemA = doc.GetFirstItem( "MailBody" )
   Set rtitemB = New NotesRichTextItem (maildoc, "MailBody")
   
   
   Call rtitemB.AppendRTItem( rtitemA )
   
   maildoc.PostedDate = Now()
   maildoc.ComposedDate = Now()
   maildoc.DeliveredDate = Now()
   maildoc.Principal = sendas
   maildoc.EncryptOnSend = False
   
   Call maildoc.Save( True, False )
   Call maildoc.Send(False )
   
   
   
End Sub


soweit soo gut... das funktioniert... danke für eure Bemühungen...

nun wäre ich noch über einen Tipp glücklich;-)
...ich lesse ja das RichTextfeld so aus * maildoc.Body = uidoc.FieldGetText("MailBody") *

...gibt es eine andere, bessere möglichkeit?! bei der dir Formatierung vom RichTextFeld ins Mail übernommen wird?! Mir werden soo keine Zeilenumbrüche mitgeliefert...

danke und schönen tag noch

greeeetz ivan
« Letzte Änderung: 28.11.06 - 13:15:33 von ivan_hunkeler »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang an ein E-Mail
« Antwort #11 am: 28.11.06 - 11:48:43 »
Siehe Antwort #4.

Bernhard

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Re: Anhang an ein E-Mail
« Antwort #12 am: 28.11.06 - 13:14:10 »
Siehe Antwort #4.

Bernhard

danke, das ist also die lösung

ich habs mal mit folgendem code versucht, hat aber nicht geklappt...

'   uidoc.GotoField("MailBody")
'   uidoc.SelectAll
'   uidoc.Copy
'   uidoc.GotoField("Body")
'   uidoc.Paste
   

aber dann versuch ichs nochmal...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anhang an ein E-Mail
« Antwort #13 am: 28.11.06 - 13:18:29 »
Obicht - mit dem Code kopierst Du innerhalb eines Dokumentes! Für meine Variante brauchst Du auch das zu mailende Dokument im FrontEnd!

Bernhard

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Re: Anhang an ein E-Mail
« Antwort #14 am: 28.11.06 - 13:33:31 »
Obicht - mit dem Code kopierst Du innerhalb eines Dokumentes! Für meine Variante brauchst Du auch das zu mailende Dokument im FrontEnd!

Bernhard

Mit anderen worten so wie ich es hier mache, ist es nicht möglich den Text im RichTextFeld FORMATIERT in ein Mail einzufügen?!
bzw. es ist nicht möglich Zeilenumbrüche mit zu verschicken?!

wenn man #7 meine Maske anschaut, das Mail kommt wunderbar bei mir an mit Text und Anhang... nur ist der Text nicht formatiert, sprich alles auf einer Linie...
das ist mein einziges Problem.

Diese Geschichte sollte wenn möglich mit dem CODE von #10 gehen, hab da soo lange rumstudiert:$ und würde den Code am liebsten nur durch ein bis zwei zeilen ergänzen um den TEXT formatiert oder einfach mit Zeilenschaltung(zeilenumbruch) in einem Mail zu versenden... :D

Offline ivan_hunkeler

  • Frischling
  • *
  • Beiträge: 16
Re: Anhang an ein E-Mail
« Antwort #15 am: 28.11.06 - 14:32:03 »
SOO DANKESCHÖN AN ALLE DIE MIR HELFEN WOLLTEN...

ich habs geschaft phuuu endlich:D

.. das problem war schlussendlich nur, dass ich es zuerst speichern muss vor dem senden...

aber nun klappt alles... schönen tag noch

bis bald vielleicht wieder..

greeetz ivan

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz