.net 发邮件带附件源码

// 引入命名空间
using System.Net;
using System.Net.Mail;
SmtpClient smtp = new SmtpClient(); // 实例化一个 SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; // smtp 的出站方式设为 Network
smtp.EnableSsl = false; //smtp 服务器是否启用 SSL 加密
smtp.Host = " smtp.163.com "; // 指定 smtp 服务器地址
smtp.Port = 25;             // 指定 smtp 服务器的端口,默认是 25 ,如果采用默认端口,可省去
// 如果你的 SMTP 服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
smtp.UseDefaultCredentials = true ;
// 如果需要认证,则用下面的方式
smtp.Credentials = new NetworkCredential(" 邮箱帐号 @163.com ", " 邮箱密码 ");
MailMessage mm = new MailMessage(); // 实例化一个邮件类
mm.Priority = MailPriority.High; // 邮件的优先级,分为 Low, Normal, High ,通常用 Normal 即可
mm.From = new MailAddress(" 邮箱帐号 @163.com ", " 真有意思 ", Encoding.GetEncoding(936));
// 收件方看到的邮件来源;
// 第一个参数是发信人邮件地址
// 第二参数是发信人显示的名称
// 第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
//936 是简体中文的 codepage
注: 上面的邮件来源,一定要和你登录邮箱的帐号一致,否则会认证失败
mm.ReplyTo = new MailAddress(" [email protected] ", " 我的接收邮箱 ", Encoding.GetEncoding(936));
//ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信
// 上面后两个参数的意义, From 的意义
// 邮件的抄送者,支持群发,多个邮件地址之间用 半角逗号 分开
 
// 当然也可以用全地址,如下:
mm.CC.Add( new MailAddress(" [email protected] ", " 抄送者 A ", Encoding.GetEncoding(936)));
mm.CC.Add( new MailAddress(" [email protected] ", " 抄送者 B ", Encoding.GetEncoding(936)));
mm.CC.Add( new MailAddress(" [email protected] ", " 抄送者 C ", Encoding.GetEncoding(936)));
 
// 邮件的密送者,支持群发,多个邮件地址之间用 半角逗号 分开
 
// 当然也可以用全地址,如下:
mm.CC.Add( new MailAddress(" [email protected] ", " 密送者 D ", Encoding.GetEncoding(936)));
mm.CC.Add( new MailAddress(" [email protected] ", " 密送者 E ", Encoding.GetEncoding(936)));
mm.Sender = new MailAddress(" [email protected] ", " 邮件发送者 ", Encoding.GetEncoding(936));
// 可以任意设置,此信息包含在邮件头中,但并不会验证有效性,也不会显示给收件人
// 说实话,我不知道有啥实际作用,大家可不理会,也可不写此项
// 邮件的接收者,支持群发,多个地址之间用 半角逗号 分开
 
// 当然也可以用全地址添加
 
mm.To.Add( new MailAddress(" [email protected] ", " 接收者 g ", Encoding.GetEncoding(936)));
mm.To.Add( new MailAddress(" [email protected] ", " 接收者 h ", Encoding.GetEncoding(936)));
mm.Subject = " 这是邮件标题 "; // 邮件标题
mm.SubjectEncoding = Encoding.GetEncoding(936);
// 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
// 936 是简体中文的 pagecode ,如果是英文标题,这句可以忽略不用
mm.IsBodyHtml = true ; // 邮件正文是否是 HTML 格式
 
mm.BodyEncoding = Encoding.GetEncoding(936);
// 邮件正文的编码, 设置不正确, 接收者会收到乱码
 
mm.Body = " <font color="red"> 邮件测试,呵呵 </font> ";
// 邮件正文
mm.Attachments.Add( new Attachment( @" d:a.doc ", System.Net.Mime.MediaTypeNames.Application.Rtf ) );
// 添加附件,第二个参数,表示附件的文件类型,可以不用指定
// 可以添加多个附件
mm.Attachments.Add( new Attachment( @" d:b.doc ") );
smtp.Send( mm );

你可能感兴趣的:(.net)