2015-11-19 311 views
4

我正在通過拋出SendGrid發送電子郵件的異常,因爲最近升級項目.NET 4.5.2SendGrid無法從傳輸連接讀取數據:net_io_connectionclosed

發送郵件失敗。 System.IO.IOException:無法從 讀取數據傳輸連接:net_io_connectionclosed。在在 系統 System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(字節[]緩衝液, 的Int32偏移的Int32讀,布爾的readLine)在 System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader 呼叫者,布爾ONELINE)。 Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader 呼叫者)在System.Net.Mail.CheckCommand.Send(SmtpConnection康恩, 字符串&響應)在 System.Net.Mail.MailCommand.Send(SmtpConnection康恩,字節[]命令, MailAddress from,Boolean allowUnicode)at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients,String deliveryNotify,Boolean allowUnicode,SmtpFailedRecipientException &除外)在 System.Net.Mail.SmtpClient.Send(消息MAILMESSAGE)處 SendGridMail.Transport.SMTP.SmtpWrapper.Send System.Net.Mail.SmtpClient.Send(消息MAILMESSAGE)(MAILMESSAGE MIME)在 SendGridMail.Transport.SMTP.Deliver(ISendGrid消息)在 ReACT.Classes.Business.Helpers.Email.Send(String [] to,String [] toNames,Boolean ccToSender,String [] ccTo,String [ ] ccToNames,字符串 主題,字符串正文,布爾isHtml,字符串SMTPServer,字符串 EmailUserName,字符串EmailPassword,字符串EmailPort,字符串 SystemEmailAddress,字符串SystemEmailName,字符串& FriendlyException, 字符串& TechnicalException)

用於通過使用SendGrid服務SMTP發送電子郵件的代碼如下 -

  SendGridMail.SendGrid vEmailMessage = SendGridMail.SendGrid.GetInstance(vMailMessage.From, vMailMessage.To.ToArray(), vMailMessage.CC.ToArray(), new MailAddress[0], vMailMessage.Subject, vMailMessage.Body, vMailMessage.Body); 

      NetworkCredential vCredentials = new NetworkCredential(this.ApplicationSettings.EmailUserName, this.ApplicationSettings.EmailPassword); 
      var vTransport = SMTP.GetInstance(vCredentials); 

      //Send email message 
      vTransport.Deliver(vEmailMessage); 

憑據是否正確,並確認爲正常工作。這個問題只在.NET框架升級後纔開始,不幸的是,我們不能降級回目標.net 4

回答

9

對於那些在通過SendGrid發送郵件時遇到同樣的異常,事實證明一個新的功能是傳遞SendGrid API的密碼不正確導致AuthenticationFailedException: 535 Authentication failed: Bad username/password

我在下載Wireshark後發現這個,發現&檢查SendGrid數據包發現發送到API的數據在一定條件下是不正確的。然後,SendGrid API但是其返回一個相當有用的AuthenticationFailedException異常,當此異常代碼中try catch塊被抓,實際的異常被屏蔽,來如上述net_io_connectionclosed IOException

我固定的bug在我們的新的應用程序和問題消失了。如果只有SendGrid API引發的實際異常是try catch塊中捕獲的異常!

+0

你是如何解決這個問題的? – zillabunny

+0

我發現問題是由不正確的密碼造成的 - 存儲的密碼是正確的,但是從存儲中檢索密碼的邏輯存在問題,一旦解決問題並且正確的密碼被傳遞,所有工作 –

+0

對我們的問題感興趣是sendgrid自己,我們的憑據是正確的,我們可以用它們進入sendgrid,但我們創建了快速的小C#smtp郵件程序,它不起作用,我們創建了一個新的sendgrid帳戶,它爲我們工作。 – zillabunny

-1

我確實注意到服務正在發送大量消息並使用天藍色的免費帳戶中的所有25.000 /月消息。 爲了解決這個問題,我創建了一個新帳戶並修復了發送較少數量消息的服務。

相關問題