tijian_tieying/web/Web/App_Code/Pop3ForJmail.cs
2025-02-20 12:14:39 +08:00

166 lines
6.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 jmail;
/// <summary>
/// Pop3ForJmail 的摘要说明
/// </summary>
public class Pop3ForJmail
{
public Pop3ForJmail()
{
}
/// <summary>
/// 收取新邮件、不删除老邮件、收取邮件后写入数据库
/// </summary>
public static void GetNewMailIntoDataBase(string UserName,string PassWord,string PopServer,int Port,DateTime MaxDate)
{
POP3 NewMail = new POP3();
NewMail.Connect(UserName, PassWord, PopServer, Port);
for (int i = 1; i <= NewMail.Count; i++)
{
//判断是否跟当前最大的时间作比较,大于当前时间就处理
DateTime CurrentEmailDate = DateTime.Now;
try
{
CurrentEmailDate = DateTime.Parse(NewMail.Messages[i].Date.ToString());
}
catch
{ }
try
{
if (CurrentEmailDate.CompareTo(MaxDate) > 0)
{
string EmailFuJian = "";
for (int j = 0; j < NewMail.Messages[i].Attachments.Count; j++)
{
NewMail.Messages[i].Charset = "GB2312"; //设置邮件的编码方式
NewMail.Messages[i].Encoding = "Base64"; //设置邮件的附件编码方式
NewMail.Messages[i].ISOEncodeHeaders = false; //是否将信头编码成iso-8859-1字符集
try
{
string FileName = DateTime.Now.Ticks.ToString() + NewMail.Messages[i].Attachments[j].Name;
//符合上传要求就保存,否则提示文件名未下载
if (ZWL.Common.PublicMethod.IfOkFile(FileName) == true)
{
NewMail.Messages[i].Attachments[j].SaveToFile(System.Web.HttpContext.Current.Request.MapPath("../UploadFile") + "\\MailAttachments\\" + FileName);
}
else
{
System.Web.HttpContext.Current.Response.Write("<script>alert('邮件附件文件:" + NewMail.Messages[i].Attachments[j].Name + " 不符合本服务器文件保存权限设置,禁止下载!已自动跳过本附件!');</script>");
}
if (EmailFuJian.Trim().Length > 0)
{
EmailFuJian = EmailFuJian + "|MailAttachments/" + FileName;
}
else
{
EmailFuJian = "MailAttachments/" + FileName;
}
}
catch (Exception e)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + e.Message.ToString() + "');</script>");
}
}
ZWL.BLL.ERPNetEmail MyModel = new ZWL.BLL.ERPNetEmail();
MyModel.EmailContent = NewMail.Messages[i].Body;
MyModel.EmailState = "未读";
MyModel.EmailTitle = NewMail.Messages[i].Subject;
MyModel.FromUser = NewMail.Messages[i].FromName + "" + NewMail.Messages[i].From + "";
MyModel.FuJian = EmailFuJian;
try
{
MyModel.TimeStr = DateTime.Parse(NewMail.Messages[i].Date.ToString());
}
catch
{
MyModel.TimeStr = DateTime.Now;
}
MyModel.ToUser = ZWL.Common.PublicMethod.GetSessionValue("UserName");
MyModel.Add();
}
}
catch (Exception ee)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + ee.Message.ToString() + "');</script>");
}
}
NewMail.Disconnect();
}
/// <summary>
/// 发送邮件到网络
/// </summary>
public static void SendMail(string UserName, string PassWord, string SMTPServer, string Subject, string body, string FromEmail, string ToEmail,string FuJianList)
{
try
{
Message Jmail = new Message();
DateTime t = DateTime.Now;
//Slient属性:如果设置为true,Jmail不会抛出例外错误Jmail.Send()会根据操作结果返回True或False
Jmail.Silent = false;
//Jmail创建的日志提前loging属性设置为True
Jmail.Logging = true;
//字符集,缺省为"US-ASCII";
Jmail.Charset = "GB2312";
//信件的ContentType,缺省为"Text/plain",字符串如果你以Html格式发送邮件改为"Text/Html"即可。
//Jmail.ContentType = "text/html";
//添加收件人
Jmail.AddRecipient(ToEmail, "", "");
Jmail.From = FromEmail;
//发件人邮件用户名
Jmail.MailServerUserName = UserName;
//发件人邮件密码
Jmail.MailServerPassWord = PassWord;
//设置邮件标题
Jmail.Subject = Subject;
//邮件添加附件多附件的话可以再加一条Jmail.AddAttachment("c:\test.jpg",true,null);就可以搞定了。
//注意为了添加附件要把上面的Jmail.ContentType="text/html";删掉,否则会在邮件里出现乱码
string[] FuJian = FuJianList.Split('|');
for (int kk = 0; kk < FuJian.Length; kk++)
{
if (FuJian[kk].Trim().Length > 0)
{
Jmail.AddAttachment(System.Web.HttpContext.Current.Request.MapPath("../UploadFile") + "\\" + FuJian[kk].ToString(), true, null);
}
}
//邮件内容
Jmail.Body = body + t.ToString();
//Jmail发送的方法
Jmail.Send(SMTPServer, false);
Jmail.Close();
}
catch (Exception e)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + e.Message.ToString() + "');</script>");
}
}
}