title: Error while sending email from Console application
body: <p>I am trying to send mail from a console application but it's throwing an error:</p>
  
  <blockquote>
    <p>Failure Sending Mail</p>
  </blockquote>
  
  <p>I can not understand what's causing the error. I tried the same code on another machine and it's working fine. Here is the stacktrace:</p>
  
  <pre><code>System.Net.Mail.SmtpException: Failure sending mail. ---&gt; System.Net.WebExceptio
  n: Unable to connect to the remote server ---&gt; System.Net.Sockets.SocketExceptio
  n: The requested address is not valid in its context 66.96.147.108:25
     at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddre
  ss socketAddress)
     at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Sock
  et s4, Socket s6, Socket&amp; socket, IPAddress&amp; address, ConnectSocketState state,
  IAsyncResult asyncResult, Int32 timeout, Exception&amp; exception)
     --- End of inner exception stack trace ---
     at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object ow
  ner, Boolean async, IPAddress&amp; address, Socket&amp; abortSocket, Socket&amp; abortSocket
  6, Int32 timeout)
     at System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32
   timeout, GeneralAsyncDelegate asyncCallback)
     at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate
   asyncCallback)
     at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncD
  elegate asyncCallback, Int32 creationTimeout)
     at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
     at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
     at System.Net.Mail.SmtpClient.GetConnection()
     at System.Net.Mail.SmtpClient.Send(MailMessage message)
     --- End of inner exception stack trace ---
     at System.Net.Mail.SmtpClient.Send(MailMessage message)
     at PaymentReminder.Program.SendMail(List`1 SourceList) in C:\Documents and Se
  ttings\amols\my documents\visual studio 2010\Projects\PaymentReminder\PaymentRem
  inder\Program.cs:line 110
  InnerException is: System.Net.WebException: Unable to connect to the remote serv
  er ---&gt; System.Net.Sockets.SocketException: The requested address is not valid i
  n its context 66.96.147.108:25
     at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddre
  ss socketAddress)
     at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Sock
  et s4, Socket s6, Socket&amp; socket, IPAddress&amp; address, ConnectSocketState state,
  IAsyncResult asyncResult, Int32 timeout, Exception&amp; exception)
     --- End of inner exception stack trace ---
     at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object ow
  ner, Boolean async, IPAddress&amp; address, Socket&amp; abortSocket, Socket&amp; abortSocket
  6, Int32 timeout)
     at System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32
   timeout, GeneralAsyncDelegate asyncCallback)
     at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate
   asyncCallback)
     at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncD
  elegate asyncCallback, Int32 creationTimeout)
     at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
     at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
     at System.Net.Mail.SmtpClient.GetConnection()
     at System.Net.Mail.SmtpClient.Send(MailMessage message)
  </code></pre>
  
  <p>Here is my code:</p>
  
  <pre><code>List&lt;PaymentReminderList&gt; prList = SourceList;            
  MailAddress fromMail = new MailAddress(ConfigurationManager.AppSettings.Get("FromEmail"));
  string NetworkUser = ConfigurationManager.AppSettings.Get("Network_UserName");
  string Password = ConfigurationManager.AppSettings.Get("Password");
  string Host = ConfigurationManager.AppSettings.Get("Host");
  int Port = int.Parse(ConfigurationManager.AppSettings.Get("Port"));
  string FromMail = ConfigurationManager.AppSettings.Get("FromEmail");
  string ToMail = ConfigurationManager.AppSettings.Get("ToMail");
  string mailBody = "Respected xxx, &lt;br&gt;This is Test Mail.&lt;br&gt; [[List]]  &lt;br&gt;&lt;br&gt; Sincerely, &lt;br&gt; ABC&lt;br&gt;";
  
  string mailContent = "";
  
  foreach (var item in prList)
  {
      mailContent += "" + item.abc + " | " + item.pqr + " | " + item.xyz+"&lt;br&gt;";
  }
  
  mailBody.Replace("[[List]]", mailContent);
  
  //Console.WriteLine("Mail To");
  MailAddress to = new MailAddress(ToMail);
  
  //Console.WriteLine("Mail From");
  MailAddress from = new MailAddress(FromMail);
  
  MailMessage mail = new MailMessage(from, to);
  
  Console.WriteLine("Subject");
  mail.Subject = "This is a Reminder Mail";
  
  Console.WriteLine("Your Message");
  //mail.Body = Console.ReadLine();
  mail.Body = mailBody;
  
  mail.From = from;
  mail.To.Add(to);
  
  mail.IsBodyHtml = true;
  mail.Priority = MailPriority.High;
  
  System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
  NetworkCred.UserName = NetworkUser;
  NetworkCred.Password = Password;
  
  SmtpClient smtp = new SmtpClient(Host, Port);
  smtp.Credentials = NetworkCred;
  
  Console.WriteLine("Sending email...");
  
  try
  {
      smtp.Send(mail);
  }
  catch (Exception ex)
  {
      Console.WriteLine(ex);   //Should print stacktrace + details of inner exception
  
      if (ex.InnerException != null)
          Console.WriteLine("InnerException is: {0}", ex.InnerException);
  }
  </code></pre>