[C#]实现简单发送邮件

string  mailContent = " 邮件内容 " ;
MailMessage msg 
=   new  System.Net.Mail.MailMessage();
msg.To.Add(
" ******@gmail.com " );  // 收件人

// 发件人信息
msg.From  =   new  MailAddress( " *****@gmail.com " " 发送人姓名 " , System.Text.Encoding.UTF8);
msg.Subject 
=   " 这是测试邮件 " ;    // 邮件标题
msg.SubjectEncoding  =  System.Text.Encoding.UTF8;     // 标题编码
msg.Body  =  mailContent;  // 邮件主体
msg.BodyEncoding  =  System.Text.Encoding.UTF8;
msg.IsBodyHtml 
=   true ;   // 是否HTML
msg.Priority  =  MailPriority.High;    // 优先级
SmtpClient client  =   new  SmtpClient();

// 设置GMail邮箱和密码 
client.Credentials  =   new  System.Net.NetworkCredential( " 帐号@gmail.com " " 密码 " );
client.Port 
=   587 ;
client.Host 
=   " smtp.gmail.com " ;
client.EnableSsl 
=   true ;
object  userState  =  msg;
try
{
    client.Send(msg);
    MessageBox.Show(
" 发送成功 " );
}
catch  (Exception ex)
{
    MessageBox.Show(ex.Message, 
" 发送邮件出错 " );
}

这里的重点是邮箱身份验证那个地方,一定不能写错,否则,邮件发送不出去。到这里,似乎是大功告成了,但是,你会发现,相同的程序,在某些机器上可以发送 成功,在某些机器上发送总是失败,是系统的原因?似乎不是,因为相同的系统,也是有的发送成功,有的发送失败。那是,框架的原因?似乎也不是。
这里就有一个很令人迷惑的现象出现,同样的系统,同样的框架,还是有的能发送成功,有的发送失败。失败的具体原因说是邮件标头编码有错误。那么,我们去掉Subject,不写,用默认的可以吗?也是一样的。

 

简单总结一下:
1、使用SmtpClient发送电子邮件是很简单的,只要正确创建了MailMessage对象和SmtpClient就可以很容易的发送出去电子邮件。
2、如果电子邮件服务器需要身份验证【似乎现在都需要身份验证,除非自己配置的】,注意下面这句话:
smtpClient.Credentials = new System.Net.NetworkCredential("帐号@gmail.com", "密码");
3、机器名不能使用中文。 

 

转自:http://www.cnblogs.com/xieqixiang/archive/2009/08/05/1539611.html

你可能感兴趣的:(发送邮件)