Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Send Email from Yahoo!, GMail, Hotmail (C#)

4.89/5 (50 votes)
27 Sep 2013CPOL 405.5K   1.9K  
Sending email easily from Yahoo!, GMail, Hotmail in C#.
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

C#
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;
    // Can set to false, if you are sending pure text.

    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);
    }
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)