title: SendGrid Unable to read data from the transport connection: net_io_connectionclosed
body: <p>I am getting an exception thrown sending an email via SendGrid since recently upgrading a project to .net 4.5.2</p>
  
  <blockquote>
    <p>Failure sending mail. System.IO.IOException: Unable to read data from
    the transport connection: net_io_connectionclosed.    at
    System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer,
    Int32 offset, Int32 read, Boolean readLine)    at
    System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader
    caller, Boolean oneLine)    at
    System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader
    caller)    at System.Net.Mail.CheckCommand.Send(SmtpConnection conn,
    String&amp; response)    at
    System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command,
    MailAddress from, Boolean allowUnicode)    at
    System.Net.Mail.SmtpTransport.SendMail(MailAddress sender,
    MailAddressCollection recipients, String deliveryNotify, Boolean
    allowUnicode, SmtpFailedRecipientException&amp; exception)    at
    System.Net.Mail.SmtpClient.Send(MailMessage message)    at
    System.Net.Mail.SmtpClient.Send(MailMessage message)    at
    SendGridMail.Transport.SMTP.SmtpWrapper.Send(MailMessage mime)    at
    SendGridMail.Transport.SMTP.Deliver(ISendGrid message)    at
    ReACT.Classes.Business.Helpers.Email.Send(String[] to, String[]
    toNames, Boolean ccToSender, String[] ccTo, String[] ccToNames, String
    subject, String body, Boolean isHtml, String SMTPServer, String
    EmailUserName, String EmailPassword, String EmailPort, String
    SystemEmailAddress, String SystemEmailName, String&amp; FriendlyException,
    String&amp; TechnicalException)</p>
  </blockquote>
  
  <p>The code used to send the email via SMTP using the SendGrid service is as follows -</p>
  
  <pre><code>            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);
  </code></pre>
  
  <p>The credentials are correct and confirmed as working correctly. This problem has only started since the .net framework upgrade and unfortunately, we cannot downgrade back to target .net 4</p>