user1800374
user1800374

Reputation: 75

Trying to use a HTML file as my email body using iMsg in VB.NET

I've wrote a script to create a HTML file based on a SQL Query.... It has become necessary to have that HTML be emailed. Most of our execs use blackberry's and I want to send the HTML file as the body. I have found a round about way to get this done, by adding a WebBrowser, and having the web browser then load the file, and then using the below code to send. The problem i'm facing is if I automate the code fully, it will only email part of the HTML document, now if I add a button, and make it do the email function, it sends correctly. I have added a wait function in several different location, thinking it may be an issue with the HTML not being fully created before emailing. I have to get this 100% automated. Is there a way I can use the .HTMLBody to link to the actual HTML file stored on the C:(actual path is C:\Turnover.html). Thanks all for any help.

Public Sub Email() Dim strdate Dim iCfg As Object Dim iMsg As Object

    strdate = Date.Today.TimeOfDay

    iCfg = CreateObject("CDO.Configuration")
    iMsg = CreateObject("CDO.Message")

    With iCfg.Fields
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxxxx.com"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendemailaddress") = """Turnover Report"" <[email protected]>"
        .Update()
    End With

    With iMsg
        .Configuration = iCfg
        .Subject = "Turnover Report"
        .To = "[email protected]"
        '.Cc = ""

        .HTMLBody = WebBrowserReportView.DocumentText


        .Send()
    End With



    iMsg = Nothing
    iCfg = Nothing


End Sub

Upvotes: 1

Views: 1551

Answers (1)

user1800374
user1800374

Reputation: 75

used the below function to read in a local html file. then set

TextBox2.Text = getHTML("C:\Turnover2.html")

and also

.HTMLBody = TextBox2.Text

Private Function getHTML(ByVal address As String) As String
    Dim rt As String = ""

    Dim wRequest As WebRequest
    Dim wResponse As WebResponse

    Dim SR As StreamReader

    wrequest = WebRequest.Create(address)
    wResponse = wrequest.GetResponse
    SR = New StreamReader(wResponse.GetResponseStream)

    rt = SR.ReadToEnd
    SR.Close()

    Return rt

End Function

Upvotes: 1

Related Questions