4

我正在嘗試使用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 
+0

更新:我的Exchange管理員以某種方式將問題跟蹤到負載平衡器。如果我直接連接到交換服務器,問題就消失了;但autodiscoverurl連接到負載平衡器。他現在正在跟進。希望我很快就會有一個完整的解決方案,但是我認爲我會繼續併發布以防萬一這會給任何人任何想法或者它可以幫助別人... –

回答

0

From the OP

我的Exchange管理員已經找到了問題所在負載平衡器不知何故。如果我直接連接到交換服務器,問題就消失了;但autodiscoverurl連接到負載平衡器。他現在正在跟進。希望很快我會有一個完整的解決方案,但是我認爲我會繼續併發布以防萬一,這給了任何人任何想法或者它可以幫助別人。

0

我們在這裏呆了好幾個月,我不認爲我們曾經到過這個「適當的」解決方案。我們將其跟蹤到F5上的虛擬IP地址上啓用的應用程序安全管理器。它正在掃描流量並認爲附件不安全。

相關問題