首先得下载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;
/**/
///如果收到邮件 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!请检查邮件服务器的设置是否正确!"; } }
}
|
利用Jmail发送接收邮件的方法
最新推荐文章于 2024-09-20 11:33:48 发布