用net如何实现邮件发送 用net如何实现邮件发送 求源码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/hb_gx/archive/2008/04/16/2298945.aspx 利用Jmail发送邮件:private void SendMailByJmail(){/**////建立发邮件类jmail.MessageClass oJmailMessage = new jmail.MessageClass();/**//// 字符集oJmailMessage.Charset = "GB2312";/**////附件的编码格式oJmailMessage.Encoding = "BASE64";oJmailMessage.ContentType = "text/html";/**////是否将信头编码成iso-8859-1字符集oJmailMessage.ISOEncodeHeaders = false;/**//// 优先级oJmailMessage.Priority = Convert.ToByte(1);/**////发送人邮件地址oJmailMessage.From = TxtEmail.Text.Trim();/**////发送人姓名oJmailMessage.FromName = TxtName.Text.Trim();/**//// 邮件主题oJmailMessage.Subject = txtSubject.Text.Trim();/**////身份验证的用户名oJmailMessage.MailServerUserName = TxtSmtpUser.Text.Trim();/**////用户密码oJmailMessage.MailServerPassWord = TxtSmtpPwd.Text.Trim();/**////添加一个收件人,抄送人和密送人的添加和该方法是一样的,只是分别使用AddRecipientCC和RecipientBCC两个属性///要是需要添加多个收件人,则重复下面的语句即可。添加多个抄送和密送人的方法一样oJmailMessage.AddRecipient(txtReciver.Text.Trim(),"","");if("" != upFile.PostedFile.FileName){string attpath = upFile.PostedFile.FileName;oJmailMessage.AddAttachment(@attpath,true,attpath.Substring(attpath.LastIndexOf(".")+1,3));//添加附件}/**////邮件内容oJmailMessage.Body = txtContent.Text.Trim();if(oJmailMessage.Send(TxtSmtServer.Text.Trim(),false)){Response.Write("发送成功!");}else{Response.Write("发送失败,请检查邮件服务器的设置!");}oJmailMessage = null;}1/**//// 2/// 利用Jmail接收邮件3/// 4private void ReciveByJmail()5{ 6 /**////建立收邮件对象7 jmail.POP3Class popMail = new POP3Class();8 9 /**////建立邮件信息接口10 jmail.Message mailMessage; 1112 /**////建立附件集接口13 jmail.Attachments atts;1415 /**////建立附件接口16 jmail.Attachment att;1718 try19 {20 popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim()));21 22 /**////如果收到邮件23 if(0 < popMail.Count) 24 { 25 /**////根据取到的邮件数量依次取得每封邮件26 for(int i=1;i <= popMail.Count;i++) 27 {28 /**////取得一条邮件信息29 mailMessage = popMail.Messages[i]; 3031 /**////取得该邮件的附件集合32 atts = mailMessage.Attachments; 33 34 /**////设置邮件的编码方式 35 mailMessage.Charset = "GB2312"; 36 37 /**////设置邮件的附件编码方式 38 mailMessage.Encoding = "Base64"; 39 40 /**////是否将信头编码成iso-8859-1字符集 41 mailMessage.ISOEncodeHeaders = false; 42 43 /**////邮件的优先级 44 txtpriority.Text = mailMessage.Priority.ToString(); 45 46 /**////邮件的发送人的信箱地址 47 txtSendMail.Text = mailMessage.From; 48 49 /**////邮件的发送人 50 txtSender.Text = mailMessage.FromName; 51 52 /**////邮件主题 53 txtSubject.Text = mailMessage.Subject; 54 55 /**////邮件内容 56 txtBody.Text = mailMessage.Body; 57 58 /**////邮件大小 59 txtSize.Text = mailMessage.Size.ToString(); 60 61 for(int j=0;j<ATTS.COUNT;J++)62 {63 /**////取得附件64 att = atts[j]; 65 66 /**////附件名称 67 string attname = att.Name; 68 69 /**////上传到服务器70 att.SaveToFile("e:\\attFile\\"+attname); 71 72 }73 74 }75 panMailInfo.Visible = true;76 att = null;77 atts = null;78 }79 else80 {81 Response.Write("没有新邮件!");82 }8384 popMail.DeleteMessages();85 popMail.Disconnect();86 popMail = null;87 }88 catch89 {90 Response.Write("Warning!请检查邮件服务器的设置是否正确!");91 }92} /Sends方法是发送邮件的代码。。 //你想发送的东西放在body中 #region public static void Sends(string email) { string formto = "发件箱地址"; string to = email; //接收邮箱 string content = ""; string body = ""; string name = "发件箱"; string upass = "密码"; string smtp = "smtp地址"; SmtpClient _smtpClient = new SmtpClient(); _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式 _smtpClient.Host = smtp; //指定SMTP服务器 _smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码 MailMessage _mailMessage = new MailMessage(); //发件人,发件人名 _mailMessage.From = new MailAddress(formto, "别名"); //收件人 _mailMessage.To.Add(to); _mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312"); _mailMessage.Subject = content;//主题 _mailMessage.Body = body;//内容 _mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码 _mailMessage.IsBodyHtml = true;//设置为HTML格式 _mailMessage.Priority = MailPriority.High;//优先级 try { _smtpClient.Send(_mailMessage); } catch (Exception) { } } #endregion SmtpClient smtp = new SmtpClient();//实例化一个SmtpClient smtp.DeliveryMethod = SmtpDeliveryMethod.Network;//将smtp的出站方式设为Network smtp.EnableSsl = false;//smtp服务器是否启用SSL加密 smtp.Host ="smtp.163.com";//指定 smtp 服务器地址smtp.163.com smtp.Port = 25;//指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去 //如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了 smtp.UseDefaultCredentials =true;//如果需要认证,则用下面的方式 smtp.Credentials = new NetworkCredential("你的邮箱账号","你的邮箱密码");//登录邮件 MailMessage mm = new MailMessage();//实例化一个邮件类 mm.Priority = MailPriority.Normal;//邮件的优先级,分为 Low, Normal, High,通常用 Normal即可 //收件方看到的邮件来源; //第一个参数是发信人邮件地址 //第二参数是发信人显示的名称 //第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码 //936是简体中文的codepage值 mm.From = new MailAddress("邮箱账号", "昵称、名称", Encoding.GetEncoding(936)); //ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信 //上面后两个参数的意义, 同 From 的意义 mm.ReplyTo = new MailAddress("邮箱账号","昵称、名称", Encoding.GetEncoding(936)); // 收件人地址,可以多个,例如:([email protected],[email protected]),多个以逗号分开 mm.To.Add("[email protected],[email protected],[email protected]"); mm.Subject = "测试";//标题 mm.IsBodyHtml = true;//是否以html格式发送 mm.BodyEncoding = Encoding.GetEncoding(936);//正文的编码,防止乱码 mm.Body = "测试";//邮件的内容,即:正文 //附件 //mm.Attachments.Add(new Attachment(@"D:\a.doc", System.Net.Mime.MediaTypeNames.Application.Rtf)); //多个附件 //mm.Attachments.Add(new Attachment(@"D:\c.doc")); //发送邮件 smtp.Send(mm); using System.Net.Mail; SmtpClient MySc = new SmtpClient(); MySc.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式 MySc.Host = "smtp.sina.com";//设置Smtp MySc.Credentials = new System.Net.NetworkCredential("******@sina.com", "******");//用户名和密码 string tomail = "********@**.com";//目标邮件地址 MailMessage mymm = new MailMessage("********@sina.com", tomail); Attachment objAttachment = new Attachment(FileUpload1.PostedFile.FileName);//上传的附件 mymm.Attachments.Add(objAttachment); mymm.Subject = "发送邮件的标题";//邮件标题 mymm.Body = "发送邮件的内容";//邮件内容 mymm.BodyEncoding = System.Text.Encoding.UTF8;//设置邮件内容的正文编码 mymm.IsBodyHtml = true;//设置文件正文是否为HTML格式的值 mymm.Priority = MailPriority.High;//此邮件的优先级 try { MySc.Send(mymm);//发送邮件 Response.Write("发送成功"); } catch (Exception ex) { Response.Write(ex.Message); } System.Net.Mail; 测试时候注册个gmail邮箱来测试发邮件,我之前用网易的好像不行,据说是不支持smtp服务 url重写中文的问题,正则应该怎么写? 想学arcgis,该从哪里下手呢 时间段查询语句问题出在哪里 索引超出范围。必须为非负值并小于集合大小。 .net页面嵌套jsp页面 编译自定义控件时,出现问题,请指点迷津!谢谢 生成随机字符串问题,求高人指点 求:怎么实现按回车触发服务器(button)事件 有谁试过这个来解决Word在线编辑的?我怎么不能正常进行? 那有Tree控件下载呀 vs2008不能直接调试js asp.net Menu 控件如何将其居中?
private void SendMailByJmail()
{
/**////建立发邮件类
jmail.MessageClass oJmailMessage = new jmail.MessageClass();/**//// 字符集
oJmailMessage.Charset = "GB2312";/**////附件的编码格式
oJmailMessage.Encoding = "BASE64";
oJmailMessage.ContentType = "text/html";/**////是否将信头编码成iso-8859-1字符集
oJmailMessage.ISOEncodeHeaders = false;/**//// 优先级
oJmailMessage.Priority = Convert.ToByte(1);/**////发送人邮件地址
oJmailMessage.From = TxtEmail.Text.Trim();/**////发送人姓名
oJmailMessage.FromName = TxtName.Text.Trim();/**//// 邮件主题
oJmailMessage.Subject = txtSubject.Text.Trim();/**////身份验证的用户名
oJmailMessage.MailServerUserName = TxtSmtpUser.Text.Trim();/**////用户密码
oJmailMessage.MailServerPassWord = TxtSmtpPwd.Text.Trim();/**////添加一个收件人,抄送人和密送人的添加和该方法是一样的,只是分别使用AddRecipientCC和RecipientBCC两个属性
///要是需要添加多个收件人,则重复下面的语句即可。添加多个抄送和密送人的方法一样
oJmailMessage.AddRecipient(txtReciver.Text.Trim(),"","");
if("" != upFile.PostedFile.FileName)
{
string attpath = upFile.PostedFile.FileName;
oJmailMessage.AddAttachment(@attpath,true,attpath.Substring(attpath.LastIndexOf(".")+1,3));//添加附件
}/**////邮件内容
oJmailMessage.Body = txtContent.Text.Trim();if(oJmailMessage.Send(TxtSmtServer.Text.Trim(),false))
{
Response.Write("发送成功!");
}
else
{
Response.Write("发送失败,请检查邮件服务器的设置!");
}oJmailMessage = null;
}1/**////
2/// 利用Jmail接收邮件
3///
4private void ReciveByJmail()
5{
6 /**////建立收邮件对象
7 jmail.POP3Class popMail = new POP3Class();
8
9 /**////建立邮件信息接口
10 jmail.Message mailMessage;
11
12 /**////建立附件集接口
13 jmail.Attachments atts;
14
15 /**////建立附件接口
16 jmail.Attachment att;
17
18 try
19 {
20 popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim()));
21
22 /**////如果收到邮件
23 if(0 < popMail.Count)
24 {
25 /**////根据取到的邮件数量依次取得每封邮件
26 for(int i=1;i <= popMail.Count;i++)
27 {
28 /**////取得一条邮件信息
29 mailMessage = popMail.Messages[i];
30
31 /**////取得该邮件的附件集合
32 atts = mailMessage.Attachments;
33
34 /**////设置邮件的编码方式
35 mailMessage.Charset = "GB2312";
36
37 /**////设置邮件的附件编码方式
38 mailMessage.Encoding = "Base64";
39
40 /**////是否将信头编码成iso-8859-1字符集
41 mailMessage.ISOEncodeHeaders = false;
42
43 /**////邮件的优先级
44 txtpriority.Text = mailMessage.Priority.ToString();
45
46 /**////邮件的发送人的信箱地址
47 txtSendMail.Text = mailMessage.From;
48
49 /**////邮件的发送人
50 txtSender.Text = mailMessage.FromName;
51
52 /**////邮件主题
53 txtSubject.Text = mailMessage.Subject;
54
55 /**////邮件内容
56 txtBody.Text = mailMessage.Body;
57
58 /**////邮件大小
59 txtSize.Text = mailMessage.Size.ToString();
60
61 for(int j=0;j<ATTS.COUNT;J++)
62 {
63 /**////取得附件
64 att = atts[j];
65
66 /**////附件名称
67 string attname = att.Name;
68
69 /**////上传到服务器
70 att.SaveToFile("e:\\attFile\\"+attname);
71
72 }
73
74 }
75 panMailInfo.Visible = true;
76 att = null;
77 atts = null;
78 }
79 else
80 {
81 Response.Write("没有新邮件!");
82 }
83
84 popMail.DeleteMessages();
85 popMail.Disconnect();
86 popMail = null;
87 }
88 catch
89 {
90 Response.Write("Warning!请检查邮件服务器的设置是否正确!");
91 }
92}
//你想发送的东西放在body中
#region
public static void Sends(string email)
{
string formto = "发件箱地址";
string to = email; //接收邮箱
string content = "";
string body = "";
string name = "发件箱";
string upass = "密码";
string smtp = "smtp地址";
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = smtp; //指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
MailMessage _mailMessage = new MailMessage();
//发件人,发件人名
_mailMessage.From = new MailAddress(formto, "别名");
//收件人
_mailMessage.To.Add(to);
_mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
_mailMessage.Subject = content;//主题 _mailMessage.Body = body;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.High;//优先级
try
{
_smtpClient.Send(_mailMessage);
}
catch (Exception)
{
}
}
#endregion
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;//将smtp的出站方式设为Network
smtp.EnableSsl = false;//smtp服务器是否启用SSL加密
smtp.Host ="smtp.163.com";//指定 smtp 服务器地址smtp.163.com
smtp.Port = 25;//指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去
//如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
smtp.UseDefaultCredentials =true;//如果需要认证,则用下面的方式
smtp.Credentials = new NetworkCredential("你的邮箱账号","你的邮箱密码");//登录邮件
MailMessage mm = new MailMessage();//实例化一个邮件类
mm.Priority = MailPriority.Normal;//邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
//收件方看到的邮件来源;
//第一个参数是发信人邮件地址
//第二参数是发信人显示的名称
//第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
//936是简体中文的codepage值
mm.From = new MailAddress("邮箱账号", "昵称、名称", Encoding.GetEncoding(936));
//ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信
//上面后两个参数的意义, 同 From 的意义
mm.ReplyTo = new MailAddress("邮箱账号","昵称、名称", Encoding.GetEncoding(936));
// 收件人地址,可以多个,例如:([email protected],[email protected]),多个以逗号分开
mm.To.Add("[email protected],[email protected],[email protected]");
mm.Subject = "测试";//标题
mm.IsBodyHtml = true;//是否以html格式发送
mm.BodyEncoding = Encoding.GetEncoding(936);//正文的编码,防止乱码 mm.Body = "测试";//邮件的内容,即:正文
//附件
//mm.Attachments.Add(new Attachment(@"D:\a.doc", System.Net.Mime.MediaTypeNames.Application.Rtf));
//多个附件
//mm.Attachments.Add(new Attachment(@"D:\c.doc"));
//发送邮件 smtp.Send(mm);
MySc.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
MySc.Host = "smtp.sina.com";//设置Smtp
MySc.Credentials = new System.Net.NetworkCredential("******@sina.com", "******");//用户名和密码
string tomail = "********@**.com";//目标邮件地址
MailMessage mymm = new MailMessage("********@sina.com", tomail);
Attachment objAttachment = new Attachment(FileUpload1.PostedFile.FileName);//上传的附件
mymm.Attachments.Add(objAttachment);
mymm.Subject = "发送邮件的标题";//邮件标题
mymm.Body = "发送邮件的内容";//邮件内容
mymm.BodyEncoding = System.Text.Encoding.UTF8;//设置邮件内容的正文编码
mymm.IsBodyHtml = true;//设置文件正文是否为HTML格式的值
mymm.Priority = MailPriority.High;//此邮件的优先级
try
{
MySc.Send(mymm);//发送邮件
Response.Write("发送成功");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
测试时候注册个gmail邮箱来测试发邮件,我之前用网易的好像不行,据说是不支持smtp服务