2014-02-25 54 views
0

所以我試圖從Excel VBA後臺發送的自動消息。我非常擅長我的VBA技能,並且在過去使用了以下方法取得了巨大成功。我在我的新環境中使用這種方法時遇到了問題,並且我知道它與Exchange服務器的配置有關,問題是管理交換服務器的人員也不是我的Exchange專家。Exchange 2010的驗證問題

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大師可能會提供一些建議?

感謝, 乍得

回答

0

好了,我終於成功地解決我自己的問題。如果其他人有類似的問題,我想我會分享。原來是一個端口問題。

交流的標準端口25和465的SSL(我相信)。

在這種情況下,25端口被配置爲(由打印機&傳真機爲主)從我們的防火牆後面匿名發送。我嘗試使用端口465,但它報告說該端口不存在。

在Exchange服務器上多挖後,我發現了一些任意的端口號來配置對身份驗證的消息。一旦我在上面的代碼中對正確的端口號進行了硬編碼,我就沒有任何問題能夠實現。快樂的編碼!