【问题标题】:COMException unhandled error when sending an email through Outlook using VB.Net使用 VB.Net 通过 Outlook 发送电子邮件时出现 COMException 未处理错误
【发布时间】:2011-03-25 12:38:42
【问题描述】:

我有以下代码向人们发送电子邮件,他们的详细信息是从数据库中检索的:

Dim oMsg As Outlook._MailItem
Dim objOL As Outlook.Application
objOL = New Outlook.Application()
oMsg = objOL.CreateItem(Outlook.OlItemType.olMailItem)

con = New OleDbConnection("provider=SQLOLEDB;data source=pc;initial catalog=DB1;integrated security=SSPI")
cmd = New OleDbCommand("select column1, column2, column3, column4 from table1 where <condition>", con)
con.Open()
r = cmd.ExecuteReader
While r.Read
    oMsg.Subject = "Subject"
    oMsg.Body = "Hello " & r.Item(0) & vbLf & vbCr & "How are " & r.Item(1) & " and" & r.Item(2) & vbLf & vbCr & " ? "
    oMsg.To = r.Item(3).ToString
    oMsg.Send()
End While
con.Close()
oMsg = Nothing
objOL = Nothing

问题是在它发送第一封电子邮件后,它给了我一个未处理的 COMException 错误,说明该项目已被移动或删除。这里有什么问题?

【问题讨论】:

    标签: vb.net outlook comexception


    【解决方案1】:

    我相信您每次循环都需要一个新的 Outlook 消息:

    Dim oMsg As Outlook._MailItem 
    Dim objOL As Outlook.Application 
    objOL = New Outlook.Application() 
    
    con = New OleDbConnection("provider=SQLOLEDB;data source=pc;initial catalog=DB1;integrated security=SSPI") 
    cmd = New OleDbCommand("select column1, column2, column3, column4 from table1 where <condition>", con) 
    con.Open() 
    r = cmd.ExecuteReader 
    While r.Read 
        oMsg = objOL.CreateItem(Outlook.OlItemType.olMailItem) 
    
        oMsg.Subject = "Subject" 
        oMsg.Body = "Hello " & r.Item(0) & vbLf & vbCr & "How are " & r.Item(1) & " and" & r.Item(2) & vbLf & vbCr & " ? " 
        oMsg.To = r.Item(3).ToString 
        oMsg.Send() 
    
        oMsg = Nothing 
    End While 
    con.Close() 
    objOL = Nothing 
    

    【讨论】:

    • 我正在从数据库中检索 ymd 格式的日期。如何在发送给 dmy 的消息中对其进行格式化?我尝试了Format 方法,但是邮件本身中的日期被替换为“dd-MM-yyyy”。有什么帮助吗?
    • 自定义日期和时间格式字符串:msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
    • 我试过r.Item(1).ToString("dd-MM-yyyy"),其中 r.Item(1) 是 ymd 格式的日期。我收到“无法将字符串转换为整数”或类似的错误。我能做什么?
    猜你喜欢
    • 2020-04-04
    • 2016-07-18
    • 1970-01-01
    • 2016-01-18
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多