您的位置:首页 > 编程语言 > C#

C#发邮件 两种方法 实例

2013-09-15 10:22 239 查看
《本文原创,转载请标明作者和出处。》

最近要用c#做个小工具,要用到C#发邮件这个功能,顺便把代码贴上来和大家分享。

方法一: 用.net的net.mail库封装好的方法。

view
plain

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net;

using System.Net.Mail;

using System.Net.Security;

namespace Mail_TC01

{

class Program

{

static void Main(string[] args)

{

MailMessage myMail = new MailMessage();

myMail.From = new MailAddress("huichanglee@163.com");

myMail.To.Add(new MailAddress("li_huichang@yeah.net"));

myMail.Subject = "来自Cheers的问候";

myMail.SubjectEncoding = Encoding.UTF8;

myMail.Body = "Hi 哥们: 发个邮件测试下。";

myMail.BodyEncoding = Encoding.UTF8;

myMail.IsBodyHtml = false;

myMail.Priority = MailPriority.High;

myMail.CC.Add(new MailAddress("252827972@qq.com"));

myMail.Bcc.Add(new MailAddress("huichanglee@126.com")); //smtp client

SmtpClient sender = new SmtpClient("smtp.163.com");

sender.UseDefaultCredentials = false;

sender.Credentials = new NetworkCredential("huichanglee@163.com", "******");

sender.DeliveryMethod = SmtpDeliveryMethod.Network;

sender.EnableSsl = true;

try

{

sender.Send(myMail);

Console.WriteLine("Success");

}

catch (InvalidOperationException e)

{

Console.WriteLine("Failed.Exception:{0}", e.Message);

} Console.Write("Press any key to quit...");

Console.ReadKey();

}

}

}

备注: 由于微软.net
framework有个bug(见:http://hi.baidu.com/shuwang/blog/item/f463db1bb4c789d2ad6e75dc.html),推荐使用下边方法。

方法二: .net 结合 jmail发邮件

前提条件: 必须安装jmail组件(免费的网上随便都能下到,现在版本为4.5)

view
plain

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using jmail;

namespace Jmail_TC01

{

class Program

{

public static bool SendMail(string from, string to, string subject, string body)

{

jmail.Message m = new Message();

m.Charset = "gb2312";

m.From = from;

m.Subject = subject;

m.AddRecipient(to, null, null);

m.MailServerUserName = "huichanglee@163.com"; //此处为邮箱账户

#region password

m.MailServerPassWord = "******"; //此处为邮箱密码

#endregion

m.ContentType = "text/html";

m.Body = body;

m.Send("smtp.163.com", false);

return true;

}

static void Main(string[] args)

{

if (SendMail("huichanglee@163.com", "huichanglee@126.com", "Hi 帮我在明天把书还了", "Hi,Cheers:明天下午帮我把书还了,谢谢!~")) //调用发邮件方法。

{

Console.WriteLine("Send mail pass!");

}

else

{

Console.WriteLine("Send mail fail!");

}

Console.ReadKey();

}

}

}

两种方法各有优劣,大家根据实际情况选择吧!呵呵~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: