Autor Thema: HTML EMail  (Gelesen 4134 mal)

Offline Janosch

  • Frischling
  • *
  • Beiträge: 6
HTML EMail
« am: 11.12.08 - 10:48:26 »
Hallo liebe Notes Experten,

ich bin gerade dabei für meine Software Notes mit einzubinden.

Ich Programmiere mit vb6 und arbeite zur Zeit an einer Funktion die mir eine Mail generiert. Was auch kein Problem ist. Im Internet findet man ja auch massig Beispiele.
Jedoch habe ich ein Problem:

Ich möchte natürlich auch HTML EMails erstellen, und nicht nur Plain Text.
Leider habe ich keine Ahnung wo das im Objektmodell steckt.
Bin nach manueller Suche nicht fündig geworden.

Leider kann ich mein Problem auch nicht mit Objektmodellen von andren Mail Programmen assozieren.

Bei z.B. Tobit David zehn ist es relativ einfach. Es gibt ein DvApi32.MailItem Objekt mit der Methode .BodyText darauf folgen .PlainText oder HTMLText.
Auch ist es relativ einfach an eine kostenfreie Dokumentation des Objektmodels zu kommen. Was bei IBM/Notes leider nicht der Fall ist.

Wäre super wenn ihr Experten mir Rat geben könntet  :)

Gruß Janosch
« Letzte Änderung: 11.12.08 - 11:03:32 von Janosch »

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: HTML EMail
« Antwort #1 am: 11.12.08 - 11:03:05 »
Lotus Domino Designer documentation vor allem die COM-Geschichten. In der "normalen" Designer-Hilfe findest Du die Objektstruktur.

Du willst Dir vor allem die NotesMIMEEntity class ansehen.
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 Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: HTML EMail
« Antwort #2 am: 11.12.08 - 11:35:52 »
Hier gibt's eine gute Doku zur COM-Programmierung:

COM Together - with Domino


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Janosch

  • Frischling
  • *
  • Beiträge: 6
Re: HTML EMail
« Antwort #3 am: 11.12.08 - 15:40:45 »
Vielen Dank für die Ratschläge   ;)

Ich werde über meine Erfolge/Misserfolge ::) berichten

Gruß Janosch

Offline Janosch

  • Frischling
  • *
  • Beiträge: 6
Re: HTML EMail
« Antwort #4 am: 15.12.08 - 15:44:05 »
Leider bin ich noch gar nicht bis zum HTML EMail Versand gekommen.


Durch die Dokus von euch beiden habe ich angefangen nicht mehr alles 'as Object' zu deklarieren.

Statt z.B.                                               nicht mehr

Dim Session As NotesSession                Dim Session As Object
Dim MailDoc As NotesDocument               Dim MailDoc As Object
Dim Maildb As NotesDatabase                Dim Maildb As Object

Seit dieser Maßnahme bekomme ich kein Bein mehr auf den Boden.

Hier mal ein kleines Beispiel:


Dim Maildb As NotesDatabase 'Die Datenbank
Dim UserName As String 'Der Benutzername
Dim MailDbName As String 'Der Datenbankname
Dim MailDoc As NotesDocument 'Das Maildokument selbst
Dim Session As NotesSession 'Die Notes Session
   
  Set Session = New NotesSession
  Set Session = CreateObject("Notes.NotesSession")
  Set Maildb = Session.GetDatabase("", MailDbName)

  If Maildb.IsOpen = True Then
    'Fertig zum mailen!
  Else
    Maildb.OPENMAIL
  End If
       
   
  'Ein neues Maildokument erstellen
  Set MailDoc = Maildb.CreateDocument

  MailDoc.Form = "Memo"
  MailDoc.sendto = Recipient
  MailDoc.CopyTo = CopyTo
  MailDoc.Blindcopyto = Blindcopy
  MailDoc.Subject = Subject
  MailDoc.Body = BodyText
  MailDoc.SaveMessageOnSend = SaveIt

  'Lotus öffnen
  Dim Workspace As Object
  Set Workspace = CreateObject("Notes.NotesUIWorkspace")
  Call Workspace.EDITDOCUMENT(True, MailDoc).GOTOFIELD("Body")
   
  MailDoc.PostedDate = Now()
  MailDoc.Send 0, Recipient



Jedes mal kracht es schon ganz am Anfang bei

Set Session = CreateObject("Notes.NotesSession")

"Typen unverträglich"

Ich habe auch andere Beispiele getestet, welche As NotesSession, As NotesDataBase...etc deklariert waren. Leider immer mit dem gleichen Ergebnis.


Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: HTML EMail
« Antwort #5 am: 15.12.08 - 15:53:44 »
...

Dim Session As NotesSession 'Die Notes Session
   
Set Session = New NotesSession
Set Session = CreateObject("Notes.NotesSession")
...

So kann das schon mal nicht gehen.


Versuch das Ganze mal so:

...
Dim notesSession As Object
Dim notesDatabase As Object

Set notesSession = CreateObject("Notes.NotesSession")
Set notesDatabase = notesSession.GetDatabase(strServer, strDbName)
...


Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Janosch

  • Frischling
  • *
  • Beiträge: 6
Re: HTML EMail
« Antwort #6 am: 15.12.08 - 17:13:34 »
Wenn ich dann noch Dim MailDoc As Object deklariere dann funktioniert es.

Soweit war ich ja schon.

Das Object As NotesSession, ... As NotesDocument, ... As NotesDatabase Gedöns wollte ich nur zur Vollständigkeithalber mit aufnehmen, wegen der intellisense Geschichte.

Ich hatte nur gehofft dadurch mein Problem mit der HTML Mail zu lösen. Ich komme einfach nicht dahinter wie ich eine HTML Mail verschicke  :-:
 
 


       

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: HTML EMail
« Antwort #7 am: 15.12.08 - 17:38:45 »
MIt UI-Funktionen klappt das auch nicht. Das musst Du im Backend (Notesdocument, nicht NotesUIDocument) machen.
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 Janosch

  • Frischling
  • *
  • Beiträge: 6
Re: HTML EMail
« Antwort #8 am: 16.12.08 - 13:54:49 »
Leider werd ich aus deiner Ausage nicht schlau  :-\

Hast Du nicht ein kleines Beispiel für eine Mail mit HTML im body oder weisst Du wo man eins finden kann ?


Janosch

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: HTML EMail
« Antwort #9 am: 16.12.08 - 17:38:18 »
Beispiele finden sich zuhauf in den Dokus, die IBM jedem zur Verfügung stellt. Die Links wurden doch schon gepostet.

Bernhard

Offline Janosch

  • Frischling
  • *
  • Beiträge: 6
Re: HTML EMail
« Antwort #10 am: 27.01.09 - 15:01:05 »
Nach langen Lesen & Recherchieren bin ich zu diesen Ergebnis gekommen. Leider wird mir der HTML Inhalt immer in eine .dat Datei abgelegt. Diese .dat Datei kann ich zwar ohne Probleme mit dem Viewer anschauen.
In diesem Fall:

Hallo Welt



Ich habe schon häufiger gelesen das ein solches Phaenomen auch an Sicherheitseinstellungen liegen kann. Jedoch sollte ein Fett markiertes Wort keine Probleme darstellen. Ich haba ja schon häufiger solche Mails empfangen oder gar selbst geschrieben.

Dim Maildb As Object
Dim MailDoc As Object
'Dim session As NotesSession
Dim session As Object
Dim body As Object
'Dim body As NotesMIMEEntity
Dim mh As Object
'Dim mh As NotesMIMEHeader
Dim mc As Object
'Dim mc As NotesMIMEEntity
Dim stream As Object
'Dim stream As NotesStream
Dim MailDbName As String



  Set session = CreateObject("Notes.NotesSession")

  Set Maildb = session.GetDatabase(MailDbName, MailDbName)
  If Maildb.IsOpen = True Then
       'Fertig zum mailen!
  Else
      Maildb.OPENMAIL
  End If

  Set MailDoc = Maildb.CreateDocument

session.ConvertMime = False
MailDoc.Form = "Memo"
MailDoc.sendto = recipient
MailDoc.subject = "Test HTML Messages"
'Create the MIME headers
Set body = MailDoc.CreateMIMEEntity
Set mh = body.CreateHeader("MIME - VERSION")
Call mh.SetHeaderVal("1.0")
Set mh = body.CreateHeader("Content-Type")
Call mh.SetHeaderValAndParams("SetHeaderValAndParams")
Set mc = body.CreateChildEntity()
Set stream = session.CreateStream()
Call stream.WriteText("<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN""" & _
                     """http://www.w3.org/TR/html4/loose.dtd"">" & _
                      "<html> <head> <title>Beschreibung der Seite</title> </head> <body>" & _
                      "Hallo <b style='mso-bidi-font-weight:normal'>Welt</b></p> </body> </html>")
                     
Call mc.SetContentFromText(stream, "iso-8859-1", ENC_NONE)

'Close the stream
Call stream.Close
'Send it
Call MailDoc.Send 0, recipient



« Letzte Änderung: 27.01.09 - 16:35:58 von Janosch »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz