質問

だから私はExcel VBAバックエンドから自動メッセージを送信しようとしています。私は私のVBAスキルに非常に有能であり、過去に大きな成功を抱えて下記の方法を使用しました。私は新しい環境でこの方法を使って問題があります、そして私はそれがExchange Serverの構成と関係があることを知っています、問題は、Exchange Serverを管理する男も私は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)を使用して、Configurationオブジェクト内の必須フィールドにユーザー名とパスワードを指定してください。私がOutlookから電子メールを送信すると、認証が必要な電子メールに送信する問題はありませんが、CDO Exchangeを使用すると認証できません。それはまた送信者のアドレスを解決することは決してありません、それが関連しているかどうか、しかし完全な開示のためにそれがあるのではありません。 Exchange / SMTPサーバーが匿名送信を許可するように構成されているが、それはCDOが使用する唯一のオプションのようです。

私は私の賢い終わりにいます。いくつかの提案を提供することができるかもしれないどんな交換の手引きもありますか?

ありがとう、 チャド

役に立ちましたか?

解決

ええと、私はついに私自身の問題を解決することができました。他の誰かが同様の問題を抱えているならば、私は共有したいと思いました。港の問題になることがわかりました。

交換の標準ポートはSSLの25と465です(私は信じています)。

この場合、ポート25は、当社のファイアウォールの後ろから匿名で送信するように構成されていました(主にプリンタ&ファックスマシンによって)。ポート465を使用してみましたが、ポートが存在しなかったことを報告しました。

Exchange Serverで掘り下げると、任意のポート番号を使用して認証されたメッセージをコンフィグレーションしたことがわかりました。上記のコードで正しいポート番号をハードコードしたら、問題を処理する問題はありませんでした。幸せなコーディング!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top