<1>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;
namespace 邮件收发
{
class Program
{
static void Main(string[] args)
{
//---------为什么下面要设置编码?就是网页可能存在乱码的问题。其实不设置也可以,现在的邮件系统也会智能的解决乱码的问题,只是设置一下会更好一点。
Encoding mailEncoding = Encoding.GetEncoding("GB2312");
//MailMessage类:表示可以使用 System.Net.Mail.SmtpClient 类发送的电子邮件。
////new一个MailMessage对象就相当于创建了一封邮件
MailMessage mailMsg = new MailMessage();
//BodyEncoding属性:获取或设置用于邮件正文的编码(这里是设置)
mailMsg.BodyEncoding = mailEncoding;
//获取或设置此电子邮件的用户定义的自定义标题使用的编码。(这里是设置)
mailMsg.HeadersEncoding = mailEncoding;
//获取或设置此电子邮件的主题内容使用的编码。(这里是设置)
mailMsg.SubjectEncoding = mailEncoding;
//mailMsg.BodyEncoding = System.Text.Encoding.UTF8; //也可以这样直接设置邮件正文的编码为UTF8。
//-----设定邮件的标题,内容,发件人,收件人,是否可以发HTML格式的内容..等等
//使用指定的地址、显示名和编码初始化 System.Net.Mail.MailAddress 类的新实例。
//第一个参数:发件人的地址
//第二个参数:发件人的用户名(可选)
//第三个参数:这封邮件使用上面样的编码(可选)
mailMsg.From = new MailAddress("27068****@qq.com", "无盐海TEST", mailEncoding);
//目的邮件地址。即发给谁?可以有多个收件人。也就是可以有多一个new MailAddress()
//第一个参数:收件人的地址
//第二个参数:收件人的名字(可选)
//第三个参数:这封邮件使用上面样的编码(可选)
mailMsg.To.Add(new MailAddress("now2015@126.com", "潇湘夜雨", mailEncoding));
//mailMsg.CC.Add(new MailAddress("抄送人邮件列表"));
//获取或设置要发送邮件的标题
mailMsg.Subject = "这是邮件的标题";
//获取或设置要发送邮件的内容
mailMsg.Body = "这里写邮件的内容<font color='red'>内容</font>";
//获取或设置指示邮件正文是否为 Html 格式的值。true表示允许。false表示不允许
//即:是否允许发件人发送html格式的内容。例如:发送内容为:<font color="red">内容</font>
mailMsg.IsBodyHtml = true; //这条代码可设,可不设。如果不设默认就是false。
/*
//其实上面的两条代码:mailMsg.Body与mailMsg.IsBodyHtml可以用下面这段代码替代
AlternateView htmlBody = AlternateView.CreateAlternateViewFromString("<font color='red'>内容</font>", null, "text/html");
mailMsg.AlternateViews.Add(htmlBody);
*/
//获取或设置此电子邮件的优先级 有三个选项:High(高优先级),Low(低优先级),Normal(正常优先级)
mailMsg.Priority = MailPriority.Normal; //这里将这封电子邮件的优先级设为“正常优先级”
//--------发送邮件
SmtpClient client = new SmtpClient();
//获取或设置用于 SMTP 事务的主机的名称或 IP 地址(这里是设置)
//即:发件人使用的邮箱smtp服务器邮。这里发件人使用的是QQ箱,所以是smtp.qq.com
//如果用126邮箱发送邮件,这里就应该填client.Host = "smtp.126.com"
//如果用163邮箱发送邮件,这里就应该填client.Host = "smtp.163.com"
client.Host = "smtp.qq.com";
//这里是发件人邮箱的用户名和密码。(这些*号是我的密码,不便展示了)
//注意这个用户名27068****一定要与发件人的是一致的。不能乱写的
//例如:发件人是<a target=_blank href="mailto:27068****@qq.com">27068****@qq.com</a> 这里的用户名就一定要是27068****
//但是有其他类型的邮箱 如果发件人的用户名是ABC@lis.com 这里的用户名可能要填ABC@lis.com
client.Credentials = new NetworkCredential("27068****", "******");
//将指定的邮件(即:mailMsg这封邮件)发送到 SMTP 服务器以便传递。
client.Send(mailMsg);
}
}
}
在网上找到的一个demo
都一样 发送邮件
邮件的发送C#操作
Console.WriteLine("开始发送邮件....");
//1.MailMessage
//创建一封邮件
MailMessage msg = new MailMessage();
msg.From = new MailAddress("sk@chezhihui.net");
msg.To.Add(new MailAddress("yzk@chezhihui.net"));
msg.Subject = "======去给我带份饭。=======";
msg.SubjectEncoding = Encoding.GetEncoding("gb2312");
msg.Body = "==================在中午12:00之前把饭送过来。================";
//创建一个html格式的文档
AlternateView aview = AlternateView.CreateAlternateViewFromString("在中午<h1><font color=\"red\">12:00</font> </h1>之前把饭送过来。<br/><img src=\"cid:img001\"/>", Encoding.UTF8, "text/html");
//为邮件中增加一张图片
LinkedResource resource = new LinkedResource(@"c:\toYou.gif");
resource.ContentId = "img001";
aview.LinkedResources.Add(resource);
msg.AlternateViews.Add(aview);
//为邮件增加一些附件
Attachment attchFile1 = new Attachment(@"c:\1.xls");
Attachment attchFile2 = new Attachment(@"c:\a.gif");
Attachment attchFile3 = new Attachment(@"c:\a.jpg");
msg.Attachments.Add(attchFile1);
msg.Attachments.Add(attchFile2);
msg.Attachments.Add(attchFile3);
//2.SmtpClient
SmtpClient smtp = new SmtpClient();
smtp.Host = "localhost";
smtp.Credentials = new NetworkCredential("sk", "123");
smtp.Send(msg);
Console.WriteLine("发送完毕!");
Console.ReadKey();