我正在嘗試使用EWS託管API 2.0發送帶有PDF附件的郵件。我發送的電子郵件是一個不屬於我自己的帳戶,但我已將其作爲許可發送給他人。Exchange Web服務API:使用附件發送郵件時出錯
我可以發送沒有附件的電子郵件,但只要我嘗試發送附件,請求就會失敗。
該文件肯定存在。
我已經實現了TraceListener
看到,當SendAndSaveCopy
被稱爲創建附件發送請求,但我沒有收到來自服務器的正確響應(我知道的服務器雖然越來越我的要求是錯誤的顯然是服務器)。在創建附件失敗後,我看不到發送電子郵件的請求。
我收到後試圖SendAndSaveCopy
的錯誤是The request failed. The underlying connection was closed: An unexpected error occurred on a send.
內部異常是Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host.
我用Google搜索這一點,根據我找到了一些建議,我已經證實了這不是簡單的超時訂閱(在完全相同的上下文中,我可以在沒有附件的情況下SendAndSaveCopy就可以了,事實上我可以在發生故障後發送錯誤郵件)。其他人引用了文件大小的問題,但我的文件大小很小(151 KB)。
我的Exchange管理員正在檢查服務器端是否存在可能影響此設置但尚未找到任何內容的設置。
任何人都可以告訴我他們是否遇到(並找到解決方案)這個特定的問題?甚至可以指導我的Exchange管理員查看特定設置的任何提示?
我的代碼附加以下(我已經打消了我的錯誤信息的採空區的可讀性打印):
Public Function SendEmailResponse(ByVal strSender As String, ByVal strRecipient As String, ByVal strSubject As String, ByVal strBody As String, _
ByVal ews2010 As ExchangeService, Optional ByVal strCCAddresses As List(Of String) = Nothing, _
Optional ByVal strFilesToAttach As List(Of String) = Nothing, _
Optional ByVal blnReceipt As Boolean = False) As Boolean
Try
Dim msgReply As New EmailMessage(ews2010)
msgReply.Subject = strSubject
msgReply.Body = New MessageBody(BodyType.Text, strBody)
Dim fromAddress As New EmailAddress(strSender)
msgReply.From = fromAddress
msgReply.ToRecipients.Add(strRecipient)
msgReply.IsReadReceiptRequested = blnReceipt
If strCCAddresses IsNot Nothing Then
For Each strCC As String In strCCAddresses
msgReply.CcRecipients.Add(strCC)
Next
End If
msgReply.Save() '''This works just fine
If strFilesToAttach IsNot Nothing Then
For Each flAttach In strFilesToAttach
msgReply.Attachments.AddFileAttachment(flAttach)
Next
End If
msgReply.SendAndSaveCopy() '''CRASHES HERE IF AND ONLY IF I've attached files in the above loop
SendEmailResponse = True
Catch ex As Exception
SendEmailResponse = False
End Try
End Function
更新:我的Exchange管理員以某種方式將問題跟蹤到負載平衡器。如果我直接連接到交換服務器,問題就消失了;但autodiscoverurl連接到負載平衡器。他現在正在跟進。希望我很快就會有一個完整的解決方案,但是我認爲我會繼續併發布以防萬一這會給任何人任何想法或者它可以幫助別人... –