通过Exchange Web服务(EWS)发送电子邮件

时间:2015-02-19 08:13:40

标签: .net vb.net email exchange-server exchangewebservices

我尝试使用Exchange Web服务(EWS)通过Exchange服务器发送电子邮件。 我已配置了一些参数,但无法发送。 我已尝试过其他方法,例如第三方程序集,并且可以发送,因为我认为我错过了一些参数或方法来配置我的连接。

我希望你能帮助我。

我已在下面贴了一些代码......

        Try
            Dim vFrom As String = "mail@domain.exchange.com"
            Dim vTo As String = "personal@mydomain.es" 
            Dim vSubject As String = "Test " & DateTime.Now.ToString
            Dim vBody As String = "Lorem ipsum dolor sit amet, consectetur adipiscing elit ..."
            Dim vHost As String = "webmail.domain.exchange.com"
            Dim vUsr As String = "boss@mydomain.es"
            Dim vPsw As String = "1234567890" 

            Dim service As New ExchangeService(ExchangeVersion.Exchange2007_SP1)
            service.Credentials = New WebCredentials(vUsr, vPsw, vHost)
            service.Url = New System.Uri("https://" & vHost)

            Dim mail As New EmailMessage(service)
            mail.From = vFrom
            mail.ToRecipients.Add("John", vTo)
            mail.Subject = vSubject
            mail.Body = vBody
            mail.SendAndSaveCopy()

        Catch ex As ServiceRequestException
            MsgBox(ex.Message + " - sendMailExchange(ServiceRequestException)")
        Catch ex As WebException
            MsgBox(ex.Message + " - sendMailExchange(WebException)")
            'Catch ex As SmtpException
            '    MsgBox(ex.Message + " - sendMailExchange(SmtpException)")
        Catch ex As Exception
            MsgBox(ex.Message + " - sendMailExchange(Exception)")
        End Try

感谢您的帮助...

3 个答案:

答案 0 :(得分:0)

感谢您发布其他信息。通过它,我能够找到具有相同问题的人。

看看这个答案: https://stackoverflow.com/a/13517513/2319909

WebCredentials的用户名变量似乎可能有误。

答案 1 :(得分:0)

假设您正在对公司网络上的内部部署Exchange服务器执行此操作,请尝试使用System.Net.NetworkCredential替换WebCredential。

答案 2 :(得分:0)

我知道这是一个旧线程...但是由于我今天遇到了类似的问题,因此我找到了解决方案,我想我会让你知道...

问题是您使用的URI。而不是“ https://webmail.domain.exchange.com”,您应该尝试“ https://webmail.domain.exchange.com/EWS/Exchange.asmx