How to send email from an EC2 instance using GoDaddy's SMTP server?

Posted by Matt Greer on Stack Overflow See other posts from Stack Overflow or by Matt Greer
Published on 2010-05-27T20:27:46Z Indexed on 2010/05/27 20:31 UTC
Read the original article Hit count: 1257

SMTP is a whole new ballgame for me, but I am reading up on it.

I am attempting to send email from my EC2 instance using GoDaddy's SMTP server. My domain name is registered through GoDaddy and I have 2 email accounts with them.

I can successfully send the email from my dev box no problem.

my web.config

 <system.net>
    <mailSettings>
      <smtp from="[email protected]" deliveryMethod="Network">
        <network host="smtpout.secureserver.net" clientDomain="mydomain.com" port="25" userName="[email protected]" password="mypassword" defaultCredentials="false" />
      </smtp>
    </mailSettings>
  </system.net>

In my ASP.NET app:

MailMessage mailMessage = new MailMessage("[email protected]", recipientEmail, emailSubject, body);
mailMessage.IsBodyHtml = false;

SmtpClient mailClient = new SmtpClient();
mailClient.Send(mailMessage);

Very typical, simple use of System.Net.Mail.SmtpClient. The mail client is picking up the settings from my web.config as expected.

From the EC2 instance, the same setup yields:

System.Net.Mail.SmtpException: 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.SmtpConnection.GetConnection(ServicePoint servicePoint)
   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   --- End of inner exception stack trace ---

I have searched high and low and not found anyone else attempting this. All GoDaddy smtp situations I have found involve people being hosted by GoDaddy using their relay server.

Some more info:

  • My EC2 instance is Windows Server 2008 with IIS 7. The app is running in .NET 4
  • I can successfully use Gmail's SMTP server on the EC2 instance by using their port, setting SmtpClient.EnableSsl to true, and sending the mail through a gmail account. But we want to send the email from an account on our domain.
  • I have port 25 open on both the Windows firewall and Amazon's Security group based firewall.
  • I have played with Wireshark and noticed my SMTP related traffic was talking to ports in the 5,000s, so out of desperation I opened them all up to no avail (then closed them back down)
  • As far as I know my EC2 instance's IP address is not black listed by GoDaddy.

I have a feeling I'm just missing something fundamental. I also have a feeling someone is going to recommend I use AuthSmtp or something similar, I'll agree, and have had wasted the past 6 hours :)

© Stack Overflow or respective owner

Related posts about ASP.NET

Related posts about smtp