利用Jmail发送接收邮件的方法

首先得下载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!请检查邮件服务器的设置是否正确!";
}
}
}

铁观音-厂家直销

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值