Avatar billede skumbaq Nybegynder
03. december 2001 - 23:54 Der er 13 kommentarer og
1 løsning

Lotus notes og mail´s

Denne funktion sender en mail i lotus notes, hvordan sætter jeg skrifttypen på teksten i mailen ???


Public Function SendMail(byval Tomailadd As String, byval MailSub As String,
byval MailBody As String) As Object

    Dim oSess As Object
    Dim oDB As Object
    Dim oDoc As Object
    Dim oItem As Object
    Dim direct As Object
    Dim Var As Variant
    Dim Body As String

    Set oSess = CreateObject(\"Notes.NotesSession\")
    Set oDB = oSess.GETDATABASE(\"\", \"\")
    Call oDB.OPENMAIL
    Set oDoc = oDB.CREATEDOCUMENT
    Set oItem = oDoc.CREATERICHTEXTITEM(\"BODY\")
    oDoc.Form = \"Memo\"
    oDoc.Subject = MailSub
    oDoc.sendto = Tomailadd
    oDoc.Body = MailBody
    oDoc.postdate = Date
    oDoc.visable = True
    oDoc.SEND False
    Set oSess = Nothing
    Set oDB = Nothing
    Set oDoc = Nothing
    Set oItem = Nothing

End Function
Avatar billede cdelicht Nybegynder
04. december 2001 - 12:09 #1
Du skal bruge \"AppendStyle method\". Følgende eksempel er \'grabbet\' fra Notes hjælpen (se specielt mellem de 2 \'***):

Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Set db = session.CurrentDatabase
    Dim doc As New NotesDocument(db)
    Call doc.AppendItemValue _
    (\"From\", session.UserName)
    Call doc.AppendItemValue _
    (\"Subject\", Inputbox(\"Subject?\"))
    Call doc.AppendItemValue _
    (\"Categories\", Inputbox(\"Category?\"))
\'***
    Dim richStyle As NotesRichTextStyle
    Set richStyle = session.CreateRichTextStyle
    richStyle.NotesFont = FONT_COURIER
    richStyle.FontSize = 14
    Dim richText As New NotesRichTextItem(doc, \"Body\")
    Call richText.AppendStyle(richStyle)
\'***
    newPara = Inputbox _
    (\"Paragraph of text for \"\"Body\"\" item\")
    firstPara = True
    While newPara <> \"\"
          If firstPara Then
              firstPara = False
          Else
              Call richText.AddNewLine(2)
          End If
          Call richText.AppendText(newPara)
          newPara = Inputbox _
          (\"Paragraph of text for \"\"Body\"\" item\")
    Wend
    Call doc.Save(True, False)
End Sub

Der findes følgende properties:
Bold
Effects
FontSize
Italic
NotesColor
NotesFont
Parent
PassThruHTML
Strikethrough
Underline

God fornøjelse - cdelicht
Avatar billede skumbaq Nybegynder
11. december 2001 - 10:19 #2
Nu har jeg sidder og prøver et par dage...

Jeg for en fejl ved disse linier

Dim doc As New NotesDocument(db)

Dim richText As New NotesRichTextItem(doc, \"Body\")

Avatar billede cdelicht Nybegynder
11. december 2001 - 13:23 #3
Mit eksempel bruger Notes\' egen syntax - prøv med VB\'s syntax.
I dit eksempel har du jo allerede documentet og RichTextItem\'et: oDoc og oItem. Du mangler blot at \"Dim\'e\" NotesRichTextStyle, sætte attributterne og sluttelig Append\'e disse. Prøv noget i stil med:

    Dim oStyle As NotesRichTextStyle
    Set oStyle = oSess.CreateRichTextStyle
    oStyle.NotesFont = FONT_COURIER
    oStyle.FontSize = 14
    Call oItem.AppendStyle(richStyle)
Avatar billede skumbaq Nybegynder
12. december 2001 - 09:39 #4

Jeg sidder og total fedter i det....

Hvad vil du sige til 150 Point for at rette min function til så det virker ?

Avatar billede cdelicht Nybegynder
12. december 2001 - 10:28 #5
Så gerne (med alle forbehold) ;-)

Public Function SendMail(byval Tomailadd As String, byval MailSub As String,
byval MailBody As String) As Object

    Dim oSess As Object
    Dim oDB As Object
    Dim oDoc As Object
    Dim oItem As Object
    Dim direct As Object
    Dim Var As Variant
    Dim Body As String

    Set oSess = CreateObject(\"Notes.NotesSession\")
    Set oDB = oSess.GETDATABASE(\"\", \"\")
    Call oDB.OPENMAIL
    Set oDoc = oDB.CREATEDOCUMENT
REM
    Dim oStyle As NotesRichTextStyle
    Set oStyle = oSess.CreateRichTextStyle
    oStyle.NotesFont = FONT_COURIER
    oStyle.FontSize = 14
    oStyle.Bold = True
    oStyle.Italic = True
REM
    Set oItem = oDoc.CREATERICHTEXTITEM(\"BODY\")

    Call oItem.AppendStyle(oStyle)

    oDoc.Form = \"Memo\"
    oDoc.Subject = MailSub
    oDoc.sendto = Tomailadd
    oDoc.Body = MailBody
    oDoc.postdate = Date
    oDoc.visable = True
    oDoc.SEND False
    Set oSess = Nothing
    Set oDB = Nothing
    Set oDoc = Nothing
    Set oItem = Nothing

End Function

PS AppendStyle virker (kun) med Notes 4.6 og frem.
Avatar billede cdelicht Nybegynder
12. december 2001 - 10:43 #6
Se også spm. 145607 mht. Domino objecter og releases.
Avatar billede skumbaq Nybegynder
12. december 2001 - 12:55 #7

Jeg for følge fejl ved denne linnie

Dim oStyle As NotesRichTextStyle

--> User-defined type not defined
Avatar billede cdelicht Nybegynder
12. december 2001 - 13:30 #8
Hm, prøv med:
Dim oStyle as Object
....
....
Set oStyle = oSess.NotesRichTextStyle

Jeg har ikke VB installeret såe... Håber det lykkes ;-)
Avatar billede skumbaq Nybegynder
12. december 2001 - 15:15 #9

Nix fejl ved

Set oStyle = oSess.NotesRichTextStyle

Jeg har heller ikke VB installeret, bruger det igennem EXCEL !

Avatar billede cdelicht Nybegynder
13. december 2001 - 09:32 #10
Nå ja, det kunne jeg jo havde gjort fra starten :-).
Følgende er testet og virker (her):

Public Function SendMail(byval Tomailadd As String, byval MailSub As String,
byval MailBody As String) As Object

    Dim oSess As Object
    Dim oDB As Object
    Dim oDoc As Object
    Dim oItem As Object
    Dim direct As Object
    Dim Var As Variant
    Dim Body As String
    Dim oStyle As Object \'NY
       
    Set oSess = CreateObject(\"Notes.NotesSession\")
    Set oDB = oSess.GETDATABASE(\"\", \"\")
    Call oDB.OPENMAIL
    Set oDoc = oDB.CREATEDOCUMENT

Rem UD!  Dim oStyle As NotesRichTextStyle
    Set oStyle = oSess.CreateRichTextStyle
    oStyle.NotesFont = FONT_COURIER
    oStyle.FontSize = 14
    oStyle.Bold = True
    oStyle.Italic = True

    Set oItem = oDoc.CREATERICHTEXTITEM(\"BODY\")
    Call oItem.AppendStyle(oStyle)
    Call oItem.AppendText(MailBody) \'Ny

    oDoc.Form = \"Memo\"
    oDoc.Subject = MailSub
    oDoc.sendto = Tomailadd
Rem UD!    oDoc.Body = MailBody
    oDoc.postdate = Date
    oDoc.visable = True
    oDoc.SEND False
    Set oSess = Nothing
    Set oDB = Nothing
    Set oDoc = Nothing
    Set oItem = Nothing

End Function

BEMÆRK du er nødt til at Append\'e MailBody til dit RichTextItem. Hvis du har MailBody splittet op i flere bidder kan du appende en style til første bid, en anden til næste bid osv. En Style gælder derfra hvor den er sat og fremad.
Avatar billede skumbaq Nybegynder
13. december 2001 - 15:39 #11

Cool ingen fejl....

Jeg kan bare ikke få den til at skrive med

oStyle.NotesFont = COURIER_NEW

Og det er det som jeg skal bruge, ser du courier new er nemlig en skrift type hvor alle bokstaver er lige lange og så kan man lave en form for tabel i mailen ellers kommer teksten til at stå hulter til bulder...

Skide være med det 170 point hvis du kan vise mig COURIER_NEW også lover jeg dig jeg aldrig skal nævne noget om det mere [smiler].
Avatar billede cdelicht Nybegynder
13. december 2001 - 16:43 #12
Nu lokker du! :-) Men desværre er kun følgende fonte mulige:
FONT_COURIER
FONT_HELV
FONT_ROMAN
Men almindelig Courier er da også fast i tegn bredden (de andre to er propotionalskrifter, dem kan du ikke bruge). Jeg tror den eneste forskel fra C-alm. til C-New er, at C-New er en TrueType font (og er pænere).
Du kan måske omgå problemet ved at undlade at sætte fonten, men sikre at default fonten i Body feltet på Memo formen i Notes Mail er \'Courier New\'. Alternativt at sætte TAB\'s ind så det ser pænt ud - men det er et helt andet spørgsmål ;-)
Avatar billede skumbaq Nybegynder
17. december 2001 - 13:56 #13

150 point som aftalt...

Avatar billede cdelicht Nybegynder
17. december 2001 - 13:59 #14
Takker :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Capgemini Danmark A/S

Java Engineer