【问题标题】:Exchange 2010 Authentication IssuesExchange 2010 身份验证问题
【发布时间】:2014-02-25 17:42:36
【问题描述】:

所以我试图从 Excel VBA 后端发送一条自动消息。我非常擅长我的 VBA 技能,并且过去使用过以下方法并取得了巨大的成功。我在新环境中使用此方法时遇到问题,我知道这与 Exchange 服务器的配置有关,问题在于管理 Exchange 服务器的人和我都是 Exchange 专家。

Public Function SendEmail(
    txtTo As String, 
    txtSubject As String, 
    txtBody As String,    
    Optional txtSender As String = vbNullString, 
    Optional txtCC As String = vbNullString, 
    Optional txtBCC As String = vbNullString)

    Dim objMsg As Object, objconfig As Object, objFields As Object

    Set objMsg = CreateObject("CDO.Message")
    Set objconfig = CreateObject("CDO.Configuration")
    Set objFields = objconfig.fields

    'Set the email configuration
    With objFields
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "SMTP"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
        .Update
    End With

    'Apply the various fields to the email object
    With objMsg
        .Configuration = objconfig
        .From = txtSender
        .Subject = txtSubject
        .To = txtTo
        .Cc = txtCC
        .Bcc = txtBCC
        .TextBody = txtBody         
        .Send
    End With

    SendEmail = IIf(Err.Number = 0, True, False)

    'clean up
    Set objMsg = Nothing
    Set objconfig = Nothing
    Set objFields = Nothing

End Function

我正在尝试发送到需要身份验证的通讯组。我们已经想出了如何删除该“功能”来发送电子邮件,但这并不理想。我尝试使用基本/清除信任 (1) 作为身份验证方法,将我的用户名和密码提供给配置对象中的必填字段,但仍然没有骰子。当我从 Outlook 发送电子邮件时,发送到需要身份验证的电子邮件时没有问题,但使用 CDO Exchange 时不允许我进行身份验证。它也永远不会解析发件人地址,不确定这是否相关,但为了充分披露它。 我知道 Exchange/SMTP 服务器配置为允许匿名发送,但这似乎是 CDO 将使用的唯一选项。

我已经束手无策了。有任何 Exchange 专家可以提供一些建议吗?

谢谢, 乍得

【问题讨论】:

    标签: email authentication excel exchange-server-2010 vba


    【解决方案1】:

    好吧,我终于设法解决了我自己的问题。如果其他人有类似的问题,我想我会分享。原来是端口问题。

    SSL 的标准交换端口是 25 和 465(我相信)。

    在这种情况下,端口 25 被配置为从我们的防火墙后面匿名发送(主要通过打印机和传真机)。我尝试使用端口 465,但它报告该端口不存在。

    在对交换服务器进行大量挖掘之后,我发现一些任意端口号被用于配置经过身份验证的消息。一旦我在上面的代码中硬编码了正确的端口号,让它工作就没有问题了。编码愉快!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 2013-07-23
      相关资源
      最近更新 更多