【问题标题】:Save email to draft folder in Outlook将电子邮件保存到 Outlook 中的草稿文件夹
【发布时间】:2019-07-24 05:14:07
【问题描述】:

我已经有发送电子邮件的代码,但我不希望它发送我只想将它保存在 Outlook 的草稿文件夹中。

我尝试添加.Close 函数,但它不起作用。有什么想法吗?

    Dim iCfg As CDO.Configuration
    Dim iMsg As CDO.message
    Dim EmailAddr As String
    Dim wsEmail As Worksheet
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Forecast")
    Set wsEmail = ThisWorkbook.Worksheets("Recepient")

    Set iCfg = New CDO.Configuration
    With iCfg
        .Fields(cdoSMTPServer) = "XXX"
        .Fields(cdoSMTPServerPort) = 25
        .Fields(cdoSendUsingMethod) = cdoSendUsingPort
        .Fields(cdoSMTPConnectionTimeout) = 200
        .Fields.Update
    End With

    Set iMsg = New CDO.message
    With iMsg
        Set .Configuration = iCfg
        .To = Worksheets("Recepient").Cells(5, 2).Value
        .cc = Worksheets("Recepient").Cells(5, 3).Value
        .From = "Automated Notification <NoReplyEmail@agit.com>"
        .Subject = "OPEN REQUEST " & Format(Now, "dd-mmm-yyyy")
        .HTMLBody = strBodyStandard
        .Close (olsave)
    End With

    Set iMsg = Nothing
    Set iCfg = Nothing
End Sub

【问题讨论】:

  • 我认为您不能在 CDO 中执行此操作,我正在浏览并找不到任何说明这一点的结果。也许您可以改用 Outlook。
  • @Mikku 我也一直在浏览。我将考虑转变展望方法

标签: excel vba outlook cdo.message


【解决方案1】:

用途:

.Close olSave

代替:

.Close

olSave 会将该邮件保存在您的草稿文件夹中


您的代码:

    With iMsg
        Set .Configuration = iCfg
        .To = Worksheets("Recepient").Cells(5, 2).Value
        .cc = Worksheets("Recepient").Cells(5, 3).Value
        .From = "Automated Notification <NoReplyEmail@agit.com>"
        .Subject = "OPEN  REQUEST " & Format(Now, "dd-mmm-yyyy")
        .HTMLBody = strBodyStandard
        .Close olSave
        '.Send
    End With

【讨论】:

  • 我得到一个编译错误:在.Close上找不到方法或数据成员
  • 我在 Excel 中使用这个
  • 这在我的系统中运行。您应该粘贴完整的代码,一定是其他问题。
  • @HarvintRaj ... 抱歉,伙计,我知道通过 Outlook 发送邮件。如果您通过 Outlook 发送邮件,这将起作用。不知道CDO。别人会回答:)
  • 这里可能不是实际问题,但.Close (olSave) 应该是.Close olSave。在这种情况下(如果您在方法而不是函数上使用前括号),括号会将参数从ByRef 转换为ByVal,请参阅explanation here。 • 括号只能用于函数或方法(如果使用了Call 语句)或者如果您想转换为ByVal
【解决方案2】:

CDO 不提供任何Save 方法。而且,这是一项非常古老的技术,如今已不再使用。相反,我建议使用提供 Save 方法的 Outlook 对象模型。您可能会发现以下文章对您有所帮助:

【讨论】:

    猜你喜欢
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    相关资源
    最近更新 更多