所以我试图从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将使用CDO的唯一选项。

我在我的智慧结束。任何交换大师都可以提供一些建议?

谢谢, 乍得

有帮助吗?

解决方案

好吧,我终于设法解决了自己的问题。如果其他人有类似的问题,我以为我会分享。事实证明是一个港口问题。

交换的标准端口为25且465用于SSL(我相信)。

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

在Exchange Server上挖掘后,我发现某些任意端口号用于配置身份验证的消息。一旦我在上面的代码中硬编码了正确的端口号,我就没有问题就可以了。快乐编码!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top