利用Jmail发送接收邮件的方法
2010-04-08 11:35
218 查看
首先得下载JMAIL组件安装后 引用该JMAIL.DLL文件 相关代码如下: 附件接收还未完善 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Net; using System.Net.Mail; using System.Text; using System.Collections.Generic; using System.Text.RegularExpressions; using jmail; using System.IO; using TX.DataAccess; /// <summary> /// NetMail 的摘要说明 /// </summary> public class Mail { public Mail() { } private string _mailto; private string _mailfrom; private string _mailsubject; private string _mailbody; private string _attech; private string _password; //收件人地址 public string Mailto { set { _mailto = value; } get { return _mailto; } } //主题 public string MailSubject { set { _mailsubject = value; } get { return _mailsubject; } } //内容 public string MailBody { set { _mailbody = value; } get { return _mailbody; } } //附件 public string Attech { set { _attech = value; } get { return _attech; } } //发件人 public string MailFrom { set { _mailfrom = value; } get { return _mailfrom; } } public string PassWord { set { _password = value; } get { return _password; } } public bool SendByJmail()//创建Mail,填入发送人,主题,內容 { try { jmail.Message Jmail = new Message(); DateTime t = DateTime.Now; String subject =_mailsubject ; String body =_mailbody ; string FromEmail =_mailfrom; //你的email String ToEmail =_mailto; //对方的email String AddAttachment =_attech;//this.FileUploadSubject.PostedFile.FileName; //Silent属性:如果设置为true,JMail不会抛出例外错误. JMail. Send( () 会根据操作结果返回true或false Jmail.Silent = true; //Jmail创建的日志,前提loging属性设置为true Jmail.Logging = true; //字符集,缺省为"US-ASCII" Jmail.Charset = "GB2312"; //信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。 // Jmail.ContentType = "text/html"; ToEmail = ToEmail.Replace("/n", "").Replace(" ", ""); string[] str = ToEmail.Split(','); Jmail.ISOEncodeHeaders = false;//解决中文乱码的问题 for (int i = 0; i < str.Length; i++) { //添加收件人 Jmail.AddRecipient(str[i], "", ""); Jmail.From = FromEmail; //发件人邮件用户名 Jmail.MailServerUserName = _mailfrom; //"gdhdavid2@163.com"; //发件人邮件密码 Jmail.MailServerPassWord = _password;//"123456";//FromEmail邮箱的登陆密码 //设置邮件标题 Jmail.Subject = subject; //AddAttachment if (_attech != "") { // 邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment( "c://test.jpg",true,null);)就可以搞定了。[注]:加了附件,讲把上面的Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。 string[] toArray = _attech.Split(','); foreach (string j in toArray) { if (j.ToString()!="") { Jmail.AddAttachment(j.ToString(), true, null); } } } //.AddAttachment("E://2.txt", true, null); //邮件内容 Jmail.Body = body + t.ToString(); //加密文件 //Jmail.PGPEncrypt = true; //Jmail发送的方法 Jmail.Send("smtp.163.com", false); Jmail.ClearAttachments(); Jmail.ClearRecipients(); } Jmail.Close(); return true; } catch (Exception ex) { return false; } } public string ReciveByJmail() { /**/ ///建立收邮件对象 jmail.POP3Class popMail = new jmail.POP3Class(); /**/ ///建立邮件信息接口 jmail.Message mailMessage; /**/ ///建立附件集接口 jmail.Attachments atts; /**/ ///建立附件接口 jmail.Attachment att; try { popMail.Connect("gdhdavid2@163.com", "123456", "pop3.163.com", 110); /**/ ///如果收到邮件 if (0 < popMail.Count) { /**/ ///根据取到的邮件数量依次取得每封邮件 for (int i = 1; i <= popMail.Count; i++) { /**/ ///取得一条邮件信息 mailMessage = popMail.Messages[i]; /**/ ///取得该邮件的附件集合 atts = mailMessage.Attachments; /**/ ///设置邮件的编码方式 mailMessage.Charset = "GB2312"; /**/ ///设置邮件的附件编码方式 mailMessage.Encoding = "Base64"; /**/ ///是否将信头编码成iso-8859-1字符集 mailMessage.ISOEncodeHeaders = false; /**/ ///邮件的优先级 string priority= mailMessage.Priority.ToString(); /**/ ///邮件的发送人的信箱地址 string SendMail = mailMessage.From; /**/ ///邮件的发送人 string Sender= mailMessage.FromName; /**/ ///邮件主题 string Subject= mailMessage.Subject; /**/ ///邮件内容 string Body= mailMessage.Body; DateTime datetime = mailMessage.Date; /**/ ///邮件大小 string Size= mailMessage.Size.ToString(); DABaseAccess DB = new DABaseAccess(); StringBuilder StrApp = new StringBuilder(); StrApp.Append("insert Mail(SendMail,Sender,Subject,Body,datetime,Size,priority)values("); StrApp.Append("'" + SendMail + "',"); StrApp.Append("'" + Sender + "',"); StrApp.Append("'" + Subject + "',"); StrApp.Append("'" + Body + "',"); StrApp.Append("'" + datetime + "',"); StrApp.Append("'" + Size + "',"); StrApp.Append("'" + priority + "'"); StrApp.Append(")"); DB.GetNonQuery(StrApp.ToString()); /* for (int j = 0; j < atts.Count; j++) { / ///取得附件 att = atts[j]; ///附件名称 string attname = att.Name; ///上传到服务器 att.SaveToFile("e://attFile//" + attname); //检查是否已经存在该文件 } */ for (int j = 0; j < atts.Count; j++) { ///取得附件 //att = atts[j]; ///附件名称 //string attname = att.Name; ///上传到服务器 // att.SaveToFile("e://attFile//" + attname); //检查是否已经存在该文件 att = atts[j]; string attname = att.Name; //Random TempNameInt = new Random(); //string NewMailDirName = TempNameInt.Next(100000000).ToString(); //生成随机文件后缀名 string strSaveDir = "E://AttachFiles//"; //取得文件名(抱括路径)里最后一个"."的索引 int intExt = attname.LastIndexOf("."); //取得文件扩展名 string strExt = attname.Substring(intExt); //取得文件名(不包括路径) Random objRand = new Random(); System.DateTime date = DateTime.Now; //生成随机文件名 string str = attname.Substring(1, attname.LastIndexOf(".") - 1); string saveName = System.DateTime.Now.Minute.ToString() + System.DateTime.Now.Second.ToString() + System.DateTime.Now.Millisecond.ToString() + Convert.ToString(objRand.Next(99) * 97 + 100); string strNewName = str + "(" + saveName + ")" + strExt;//取新名字,防止重复 //Directory.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath(".") + "//AttachFiles//" + strNewName); Directory.CreateDirectory("E://AttachFiles//" + strNewName); string mailPath = strSaveDir + strNewName; try { att.SaveToFile("E://AttachFiles//" + mailPath + "//" + att.Name); } catch (Exception ex) { return ex.ToString(); } //获取该封邮件在数据库的ID,以便和附件信息相对应,取邮件表中的最大ID即可 //int mailID = this.GetMailID(); /**/////将附件信息存入数据库 //this.AttExtSend(mailID, attname, att.Size, mailPath, Msg.From); } } //panMailInfo.Visible = true; att = null; atts = null; return "下载成功"; } else { //Response.Write("没有新邮件!"); return "没有新邮件"; } popMail.DeleteMessages(); popMail.Disconnect(); popMail = null; } catch { //Response.Write("Warning!请检查邮件服务器的设置是否正确!"); return "Warning!请检查邮件服务器的设置是否正确!"; } } } |
![](http://hi.csdn.net/attachment/201202/20/0_13297030143VV9.gif)
铁观音-厂家直销
相关文章推荐
- 利用Jmail发送和接收邮件
- 利用Jmail发送和接收邮件
- 利用Jmail发送和接收邮件
- 利用Jmail发送和接收邮件
- 利用Jmail接收邮件,发送邮件
- ASP.NET中常用功能代码总结(7)——利用Jmail发送和接收邮件
- 利用Jmail发送和接收邮件
- asp.net利用Jmail发送邮件和接收全部代码
- 利用Jmail发送和接收邮件
- 利用Jmail发送和接收邮件
- ASP.NET中常用功能代码总结(7)——利用Jmail发送和接收邮件
- C# 利用Jmail接收邮件[转]
- Jmail的一个bug - 接收邮件时邮件的发送时间不对问题
- c# 利用Jmail接收邮件
- Python实现发送与接收邮件的方法详解
- Jmail 介绍 及其 利用Jmail接收邮件 (C#)
- zabbix利用python脚本发送报警邮件的方法
- 利用python发送和接收邮件
- 利用ASP发送和接收XML数据的处理方法