문제

Excel VBA 백엔드에서 자동화 된 메시지를 보내려고합니다. 저는 VBA 기술에서 매우 유능하고 과거에 큰 성공으로 아래의 방법을 사용했습니다. 새로운 환경 에서이 방법을 사용하는 문제가 있으며 Exchange Server의 구성과 관련이있는 것이 있음을 알고 있습니다.이 문제는 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
.

인증이 필요한 유통 그룹으로 보내려고합니다. 우리는 이메일을 보내려면 "기능"을 제거하는 방법을 알아 냈지만 이것은 이상적이지 않습니다. Authentication 메서드의 기본 / 클리어 트러스트 (1)를 사용하여 구성 객체의 필수 필드에 내 사용자 이름과 암호를 제공하고 여전히 주사위가 아닙니다. Outlook에서 전자 메일을 보내면 인증이 필요한 전자 메일에 문제가 없지만 CDO Exchange를 사용할 때 인증 할 수 없습니다. 또한 보낸 사람 주소를 해결하지 않거나 관련이 있는지 확실하지는 않지만 거기에서 전체 공개를 위해서는 확실하지는 않습니다. 저는 Exchange / SMTP 서버가 익명 전송을 허용하도록 구성되었지만 CDO가 사용할 수있는 유일한 옵션 인 것으로 보입니다.

나는 내 재미있는 끝에있다. 일부 제안을 제공 할 수있는 교환 전문가는 무엇입니까?

고마워, 차드

도움이 되었습니까?

해결책

잘, 나는 마침내 내 자신의 문제를 해결할 수 있었다.다른 사람이 비슷한 문제가있는 경우 나는 내가 공유한다고 생각했다.그것은 항구 문제로 밝혀졌습니다.

Exchange의 표준 포트는 SSL 용 25 및 465입니다 (i 믿음).

이 경우 포트 25는 방화벽 뒤에서 익명으로 전송하도록 구성되었습니다 (프린터 및 팩스 기계가 주로).포트 465를 사용하여 시도했지만 포트가 존재하지 않았 음을 다시보고했습니다.

Exchange Server에서 많은 파기를 묻은 후 일부 임의의 포트 번호가 인증 된 메시지를 구성하는 데 사용되었음을 발견했습니다.위의 코드에서 올바른 포트 번호를 하드 코딩 한 후에는 작동하지 않는 문제가 없었습니다.해피 코딩!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top