通过 Exchange Web 服务 (EWS) 发送电子邮件
Send email via Exchange Web Services (EWS)
我正在尝试使用 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
感谢帮助...
感谢您发布更多信息。有了它,我能够识别出有同样问题的人。
看看这个答案:
您的 WebCredentials
用户名变量似乎有误。
假设您是针对公司网络上的本地 Exchange 服务器执行此操作,请尝试将 WebCredential 替换为 System.Net.NetworkCredential。
我知道这是一个旧线程...但是由于我今天遇到了类似的问题并找到了解决方案,我想我会让您知道...
问题出在您使用的 URI 上。而不是“https://webmail.domain.exchange.com" you should try "https://webmail.domain.exchange.com/EWS/Exchange.asmx”
我正在尝试使用 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
感谢帮助...
感谢您发布更多信息。有了它,我能够识别出有同样问题的人。
看看这个答案:
您的 WebCredentials
用户名变量似乎有误。
假设您是针对公司网络上的本地 Exchange 服务器执行此操作,请尝试将 WebCredential 替换为 System.Net.NetworkCredential。
我知道这是一个旧线程...但是由于我今天遇到了类似的问题并找到了解决方案,我想我会让您知道...
问题出在您使用的 URI 上。而不是“https://webmail.domain.exchange.com" you should try "https://webmail.domain.exchange.com/EWS/Exchange.asmx”