Hello everyone, I'm new here and have a question for you! I was working on a very complex macro in VBA using Outlook 2007's macro editor, but then realized the project is more suited for a standalone executable. Feeling working on this in VB6 was too outdated, I switched over to VB.NET (on VS Express 2008), and began porting my code.

Everything seems to be working fine as 90% of the code is simple logic, not playing around with Outlook. The one problem I am having is involving code that reads HTML from a file & places it in the HTMLBody of a new Outlook message.

When using VBA code with what appears to be the exact same functionality (see below), I get different results. When I scan the HTML file's text & put it in the messages HTML body using VBA everything ends up fine (images intact, no weird formatting errors).

When I scan the same HTML file using VB.NET code & fill in the HTML body, I get strange formatting errors and a red X on each of the images telling me the following error:

"The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, then open the file again. If the red x still appears, you may have to delete the image and then insert it again."

Yet when I test the same thing again in VBA (after receiving this error), everything once again still works fine.

The HTML template I am using was exported from an OST file in Outlook, so there is some strange formatting that's not in regular HTML files. I don't know why or how this would affect the display of information though, if everything is working fine with one method.

If anyone has ANY suggestions or thoughts, please let me know! It would be greatly appreciated.

-corteplaneta

Yeah, I sure don't have any ideas either...I've got no idea why the formatting would be different if everything else (the HTML file, where it's loading into--HTMLBody)...

Well can someone at least tell me a different way of reading file contents than this:

Public Function GetFileContents(ByVal FullPath As String, _
       Optional ByRef ErrInfo As String = "") As String

        Dim strContents As String
        Dim objReader As StreamReader
        Try
            objReader = New StreamReader(FullPath)
            strContents = objReader.ReadToEnd()
            objReader.Close()
            Return strContents
        Catch Ex As Exception
            ErrInfo = Ex.Message
        End Try
    End Function
This article has been dead for over six months. Start a new discussion instead.