【问题标题】:Specify my own message-id header when sending email with cdo.message [duplicate]使用 cdo.message 发送电子邮件时指定我自己的 message-id 标头 [重复]
【发布时间】:2017-04-01 08:19:54
【问题描述】:

有没有办法用 CDO 指定我自己的消息 ID?

使用如下配置,message-id还是由cdo组件生成,忽略我指定的那个。

<%
Const cdoSendUsingPort = 2

Dim iMsg, iConf, Flds
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

' set the CDOSYS configuration fields to use port 25 on the SMTP server
With Flds
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp@example.com"

    .Item("urn:schemas:mailheader:message-id") = "0123456789.0123456789@example.com"
.Update
End With

With iMsg
    Set .Configuration = iConf

    .From = "from@example.com"
    .Subject = "test"
    .To = "to@example.com"
    .HTMLBody = "test"
    .Send
End With
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
%>

【问题讨论】:

    标签: asp-classic cdo.message


    【解决方案1】:

    配置对象iConf与消息对象iMsg无关, 你不需要创建它。

    所以,删除 Set iConf = CreateObject("CDO.Configuration") 并将 Set Flds = iConf.Fields 替换为 Set Flds = iMsg.Fields

    您需要使用iMsg.Fields 来设置消息的标头。

    Setting Message Header Fields

    Dim iMsg, iConf, Flds
    Set iMsg = CreateObject("CDO.Message")
    Set Flds = iMsg.Fields
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    
    ' set the CDOSYS configuration fields to use port 25 on the SMTP server
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
        .Update
    End With
    
    With iMsg.Fields
        .Item("urn:schemas:mailheader:message-id") = "0123456789.0123456789@example.com"
        .Update
    End With
    
    With iMsg
        Set .Configuration = iConf
    
        .From = "from@example.com"
        .Subject = "test"
        .To = "to@example.com"
        .HTMLBody = "test"
        .Send
    End With
    

    【讨论】:

    • 我更新了我的代码示例以展示我稍后使用 iConf 所做的事情(放入 iMsg.Configuration)。如果我尝试不按照您的建议使用它,我会收到错误消息:““SendUsing”配置值无效。”
    • 让它工作了,我需要在 iMsg.Configuration.Fields 而不是 iMsg.Fields 中设置 sendusing 和 smtpserver 配置。我现在收到我的 message-id,请更新您的代码解决方案,我会将您的答案标记为解决方案
    • @Jonathan 你是对的,更新了答案。
    • 你以前already answered this
    • @Lankymart 我相信我能找到另一个。
    猜你喜欢
    • 2015-05-13
    • 2019-01-31
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    相关资源
    最近更新 更多