Troubleshooting "Mailbox unavailable. The server response was: Access denied - Invalid HELO name" when sending email with SmtpClient

user303907 picture user303907 · Jul 1, 2010 · Viewed 34.6k times · Source

I have been trying to send an email by C#. I have Googled for various examples and have taken bits and pieces from each and from the standard code which everyone would most probably be using.

string to = "[email protected]";
string from = "[email protected]";
string subject = "Hello World!";
string body =  "Hello Body!";
MailMessage message = new MailMessage(from, to, subject, body);
SmtpClient client = new SmtpClient("smtp.domain.com");
client.Credentials = new NetworkCredential("[email protected]", "password");
client.Send(message);

However, I keep getting an error stating

System.Net.Mail.SmtpException: Mailbox unavailable. The server response was: Access denied - Invalid HELO name (See RFC2821 4.1.1.1)

So, what do I do now? Is SmtpClient supposed to be special and only work on specific SMTP servers?

Answer

this. __curious_geek picture this. __curious_geek · Jul 1, 2010

It seems your username/password pair is not authenticating successfully with your SMTP server.

EDIT

I think, I found what's wrong here. I have corrected your version below.

string to = "[email protected]";

//It seems, your mail server demands to use the same email-id in SENDER as with which you're authenticating. 
//string from = "[email protected]";
string from = "[email protected]";

string subject = "Hello World!";
string body =  "Hello Body!";
MailMessage message = new MailMessage(from, to, subject, body);
SmtpClient client = new SmtpClient("smtp.domain.com");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("[email protected]", "password");
client.Send(message);