开发者

Sending formatted Lotus Notes rich text email from Excel VBA

开发者 https://www.devze.com 2023-01-08 02:24 出处:网络
While trying to use the hints in your answer at Sending formatted Lotus Notes rich text email from Excel VBA

While trying to use the hints in your answer at

Sending formatted Lotus Notes rich text email from Excel VBA

I could do almost everything I needed: write multiple lines with data from a database of mine, formatting the body by mean of html code, with links and formatted text.

I also need to put an image in the mail body, but the html code "img src="etc. does not work, maybe because the image is located on my pc and is not reached by the recipients. I need to find a way to embed the image just like I would do by mean of the Lotus menus. In my Italian Lotus Notes 7, there is a Create menu with an Image opti开发者_运维问答on, I find the image, click OK and it is done.

That's what I wish to do with my code, please tell me it's possible! :-)

Thanks in advance.

Riccardo Baldinotti, Italy


Here you can find the complete code. It's too large to paste here, so I'm copying just a few lines to show the idea:

  If (bSetImages) Then
        For iImageIndex = 0 To Ubound(imageFilePaths)

              ' Get the image file path and content id (cid).
              strImagePath = Trim(imageFilePaths(iImageIndex))
              If (strImagePath = "") Then Exit Sub
              strImageCid = Trim(imageContentIds(iImageIndex))
              If (strImageCid = "") Then Exit Sub

              ' Get the image context type.
              If (StrContains(strImagePath, ".", True)) Then strImageExt = Strrightback(strImagePath, ".") Else strImageExt = ""
              Select Case Lcase(strImageExt)
              Case "gif":      strImageType = "image/gif"
              Case "jpg":      strImageType = "image/jpg"
              Case Else:      strImageType = "image/gif"
              End Select

              ' Add the image part.
              Set mimeImage = mimeBody.CreateChildEntity()
              Set mimeImageHeader = mimeImage.CreateHeader({Content-ID})
              Call mimeImageHeader.SetHeaderVal("<" & strImageCid & ">")
              Call stream.Open(strImagePath)
              Call mimeImage.SetContentFromBytes(stream, strImageType & {;name="} + strImageCid + {"}, ENC_IDENTITY_BINARY)
              Call stream.Close()

        Next
  End If


At the address

http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/dcbf91b97004f0af8525773e002867a9?OpenDocument

I found a solution, and now my mail body has an image in it.

Here is my code.

Call stream.Open("<MY IMAGE PATH>")
Set body = MailDoc.CreateMIMEEntity '("memo")
Set richTextHeader = body.CreateHeader("Content-Type")
Call richTextHeader.SetHeaderVal("multipart/mixed")
Set mimeImage = body.CreateChildEntity()
strImageType = "image/jpeg" 'Other formats are "image/gif" "image/bmp"
Call mimeImage.SetContentFromBytes(stream, strImageType, ENC_IDENTITY_BINARY)
Call stream.Close

Regards

0

精彩评论

暂无评论...
验证码 换一张
取 消