The information provided below was correct at the time of writing.
Yahoo!, Gmail and Hotmail have already upgraded their security authentication system, more steps are required to successfully log into their mail server using programing code. Thus, the following code is no more working. But however, it does still work for most email servers other than Yahoo!, Gmail and Hotmail.
Server Parameters
Server Name | SMTP Address | Port | SSL |
Yahoo! | smtp.mail.yahoo.com | 587 | Yes |
GMail | smtp.gmail.com | 587 | Yes |
Hotmail | smtp.live.com | 587 | Yes |
Sample Code
using System.Net;
using System.Net.Mail;
string smtpAddress = "smtp.mail.yahoo.com";
int portNumber = 587;
bool enableSSL = true;
string emailFrom = "email@yahoo.com";
string password = "abcdefg";
string emailTo = "someone@domain.com";
string subject = "Hello";
string body = "Hello, I'm just writing this to say Hi!";
using (MailMessage mail = new MailMessage())
{
mail.From = new MailAddress(emailFrom);
mail.To.Add(emailTo);
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
mail.Attachments.Add(new Attachment("C:\\SomeFile.txt"));
mail.Attachments.Add(new Attachment("C:\\SomeZip.zip"));
using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber))
{
smtp.Credentials = new NetworkCredential(emailFrom, password);
smtp.EnableSsl = enableSSL;
smtp.Send(mail);
}
}