尝试使用VB.NET中的iMsg将HTML文件用作我的电子邮件正文

尝试使用VB.NET中的iMsg将HTML文件用作我的电子邮件正文,html,vb.net,html-email,Html,Vb.net,Html Email,我已经写了一个脚本来创建一个基于SQL查询的HTML文件。。。。有必要通过电子邮件发送HTML。我们的大多数执行官都使用黑莓手机,我想将HTML文件作为正文发送。我找到了一种方法来完成这项工作,方法是添加一个WebBrowser,让web浏览器加载文件,然后使用下面的代码发送。我面临的问题是,如果我完全自动化代码,它将只发送HTML文档的一部分,现在如果我添加一个按钮,并使其执行电子邮件功能,它将正确发送。我在几个不同的位置添加了一个等待函数,我认为这可能是一个问题,因为在发送电子邮件之前HTM

我已经写了一个脚本来创建一个基于SQL查询的HTML文件。。。。有必要通过电子邮件发送HTML。我们的大多数执行官都使用黑莓手机,我想将HTML文件作为正文发送。我找到了一种方法来完成这项工作,方法是添加一个WebBrowser,让web浏览器加载文件,然后使用下面的代码发送。我面临的问题是,如果我完全自动化代码,它将只发送HTML文档的一部分,现在如果我添加一个按钮,并使其执行电子邮件功能,它将正确发送。我在几个不同的位置添加了一个等待函数,我认为这可能是一个问题,因为在发送电子邮件之前HTML并没有完全创建。我必须让这个100%自动化。是否有一种方法可以使用.HTMLBody链接到存储在C上的实际HTML文件:(实际路径是C:\overflower.HTML)。谢谢大家的帮助

公共子电子邮件() 暗标准 作为对象的Dim iCfg 作为对象的Dim iMsg

    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"" <TurnoverReports@xxxxx.com>"
        .Update()
    End With

    With iMsg
        .Configuration = iCfg
        .Subject = "Turnover Report"
        .To = "xxxxx@xxxxx.com"
        '.Cc = ""

        .HTMLBody = WebBrowserReportView.DocumentText


        .Send()
    End With



    iMsg = Nothing
    iCfg = Nothing


End Sub
strdate=Date.Today.TimeOfDay
iCfg=CreateObject(“CDO.Configuration”)
iMsg=CreateObject(“CDO.Message”)
使用iCfg.Fields
.项目(”http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
.项目(”http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.项目(”http://schemas.microsoft.com/cdo/configuration/smtpserver“”=“xxxxx.com”
.项目(”http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.项目(”http://schemas.microsoft.com/cdo/configuration/sendemailaddress“”“”“”“营业额报告”
.Update()
以
与iMsg
.Configuration=iCfg
.Subject=“营业额报告”
.To=”xxxxx@xxxxx.com"
'.Cc=“”
.HTMLBody=WebBrowserReportView.DocumentText
.Send()
以
iMsg=无
iCfg=无
端接头

使用以下函数读取本地html文件。然后设置

TextBox2.Text=getHTML(“C:\turover2.html”)

而且

.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

使用以下函数读取本地html文件。然后设置

TextBox2.Text=getHTML(“C:\turover2.html”)

而且

.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

如果您已经拥有HTML,则在发送之前无需将其加载到WebBrowser控件中。只需将HTML文本作为邮件正文发送。但每次我希望它发送电子邮件时,它都会有所不同,它基本上是从轮班的角度显示任务,即1、2和3,因此HTML文件每次都不同,这就是我希望它发送文件的原因。只需将HTML文件读入字符串(无需显示)并使用该字符串填充
.HTMLBody
。还是我误解了HTML文件在显示报告时是通过javascript创建的?(我知道是报告软件创建了HTML)我应该说我在这方面很新。哈哈。听起来很有效,让我看看我能不能想出办法。如果你知道怎么做,请随时给我答案。我也会开始寻找我自己。如果你已经有了HTML,在发送之前没有必要将它加载到WebBrowser控件中。只需将HTML文本作为邮件正文发送。但每次我希望它发送电子邮件时,它都会有所不同,它基本上是从轮班的角度显示任务,即1、2和3,因此HTML文件每次都不同,这就是我希望它发送文件的原因。只需将HTML文件读入字符串(无需显示)并使用该字符串填充
.HTMLBody
。还是我误解了HTML文件在显示报告时是通过javascript创建的?(我知道是报告软件创建了HTML)我应该说我在这方面很新。哈哈。听起来很有效,让我看看我能不能想出办法。如果你知道怎么做,请随时给我答案。我也会开始寻找我自己。