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();
}
}
}
两种方法各有优劣,大家根据实际情况选择吧!呵呵~~
最近要用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();
}
}
}
两种方法各有优劣,大家根据实际情况选择吧!呵呵~~
相关文章推荐
- C#发邮件 两种方法 实例
- c# keybd_event使用方法
- C# MD5-16位加密实例,32位加密实例(两种方法)
- c# 人脸检测(典型方法)
- C#编写的发送手机短信的类库 && C#开发短信的方法和简介 &&短信编程实例
- C#实现向已存在的Excel文件中写入数据实例(两种方法)
- iOS 创建单例的两种方法
- C# MD5-16位加密实例,32位加密实例(两种方法)
- C# MD5-16位加密实例,32位加密实例(两种方法)(转)
- C# 判断批处理是否完成 方法
- Win2003下关于c#读写Excel时,出现存取被拒&Excel实例化出错的一个解决方法
- php 几种加密方法实例
- C# winform退出方法
- c#动态调用Webservice的两种方法实例
- c# winform委托实例
- C#实现Web文件上传的两种方法实例代码
- 【开发实例】C#调用SAPI实现语音合成的两种方法
- C# MD5-16位加密实例,32位加密实例(两种方法)
- java 多线程 两种方法