Showing posts with label SMTP. Show all posts
Showing posts with label SMTP. Show all posts

Thursday, July 18, 2013

How to get username from email address c#

Here is sample code snippet that I have used to get username from the email address. You can use MailAddress Class to get few built in properties for our use.

   1: string FromEmail = ConfigurationManager.AppSettings["NotifyEmail"].ToString();
   2: MailAddress FromAddress = new MailAddress(FromEmail);
   3: objEmail.From = FromAddress;
   4:  
   5: NetworkCredential NetworkCredential = new NetworkCredential(FromAddress.Address, "XXXXXXX");
   6: smtpclient.Credentials = NetworkCredential;
   7:  
   8: // Alternately you want you can try few different properties from MailAddress class.
   9:  
  10: Debug.WriteLine("DisplayName:  " +  FromAddress.DisplayName);
  11: Debug.WriteLine("Host:  " + FromAddress.Host);

This worked for my scenario. Happy coding.

Saturday, March 23, 2013

SMTP Server Error: Bad sequence of commands. The server response was: you must authenticate first (#5.5.1)

This error occurs due to lock down of default mail server (127.0.0.1) by web hosting companies due to SPAM or what ever other security reasons. But if you use “localhost” or default server “127.0.0.1” on your local machine it should not be an issue. But if you have a situation where you need to relay e-mail to a remote mail server that is secured you get this exception.

So you need to handle well using built in classes provided by .NET. This is take care by NetworkCredential Class. This class provides credentials for password-based authentication schemes such as basic, digest, NTLM, and Kerberos authentication.

Here is a fully working quick code sample that you can use to get started on your own SMTP-Authentication supporting e-mail code.

   1: try
   2: {
   3:     SmtpClient smtpclient = new SmtpClient();
   4:     NetworkCredential NetworkCredential = new NetworkCredential(smtpUserName, smtpPassword);
   5:     smtpclient.Credentials = NetworkCredential;
   6:     string MailServer = ConfigurationManager.AppSettings["SMTPServer"].ToString();
   7:     MailMessage objEmail = new MailMessage();
   8:  
   9:     string FromEmail = ConfigurationManager.AppSettings["ErrorReportEmailFrom"].ToString();
  10:     if (FromEmail.IndexOf(";") > 0)
  11:     {
  12:         FromEmail = FromEmail.Replace(";", ",");
  13:     }
  14:     MailAddress FromAddress = new MailAddress(FromEmail);
  15:     objEmail.From = FromAddress;
  16:  
  17:     string ToEmail = ConfigurationManager.AppSettings["ErrorReportEmailTo"].ToString();
  18:     if (ToEmail.IndexOf(";") > 0)
  19:     {
  20:         ToEmail = ToEmail.Replace(";", ",");
  21:     }
  22:     objEmail.To.Add(ToEmail);
  23:  
  24:     string CcEmail = ConfigurationManager.AppSettings["CcEmail"].ToString();
  25:     if (CcEmail.IndexOf(";") > 0)
  26:     {
  27:         CcEmail = CcEmail.Replace(";", ",");
  28:     }
  29:     objEmail.CC.Add(CcEmail);
  30:  
  31:     string BccEmail = ConfigurationManager.AppSettings["BccEmail"].ToString();
  32:     if (BccEmail.IndexOf(";") > 0)
  33:     {
  34:         BccEmail = BccEmail.Replace(";", ",");
  35:     }
  36:     objEmail.Bcc.Add(BccEmail);
  37:  
  38:     objEmail.Subject = strSubject;
  39:     try
  40:     {
  41:         objEmail.Body = strBody;
  42:         objEmail.IsBodyHtml = true;
  43:         smtpclient.Host = MailServer;
  44:         smtpclient.Send(objEmail);
  45:     }
  46:     catch (Exception ex)
  47:     {
  48:         throw ex;
  49:     }
  50:     finally
  51:     {
  52:         objEmail.Dispose();
  53:     }
  54: }
  55: catch (Exception ex)
  56: {
  57:      
  58: }

Enjoy coding!!

Thursday, July 15, 2010

Windows 7: SMTP Server

I am using Windows 7, as a developer some times i need to send emails from my applications. But using Windows 7  i can’t send emails as SMTP service used to ship with IIS 6.0 and earlier versions are missing from IIS 7.0 on Windows 7.  there is no default SMTP configured, I am very impressed with Windows 7 but  IIS 7.0 does not include Post Office Protocol or Simple Mail Transfer Protocol.

For this there many third party free SMTP Servers available over net.  But for me after trying various SMTP service solutions, the one that I found to be pretty simple to install and configure is hMailServer. Just like the old SMTP that ships with IIS 6.0, hMailServer allows one to restrict access to the local machine (127.0.0.1) only in order to prevent being vulnerable to spam. It installs a SQL database meant for storing inbound email for users to POP/IMAP mail out of. Its a security features of locking it down to the loopback address. But as developer its simple and easy to use

Download and install hMailServer.

Some pointers on ensuring you restrict access to your local machine only.

Once you attempt to connect i ask for the password which is give at the time of installation.

8

This will open the admin console.  Go to Protocols section in Settings, and check only SMTP and save.

9

Now go to Advanced in Settings –>Settings –> Advanced. Select IP Ranges section

image

Select My Computer from IP Ranges and click Edit,

image

Uncheck all from Require SMTP authentication section. And keep the rest all default settings as it is.

That is it.  You have a mail server now on Windows 7.  This software has a lot of options including having multiple domains.  Remember to secure it the best you can so you don’t become a spam haven.  Happy SMTP Mailing Smile