代码
/// <summary>
/// 用Jmail组件发送邮件
/// </summary>
private static string SendMailWithJmail(string SMTPServer,int SMTPPort,string FromMail,string Password,string FromName,bool SMTPAuth,MailInfo mail,string sAttachments,string strSrcFiles)
{
jmail.Message Jmail=new jmail.Message(); //创建消息对象
//Silent属性:如果设置为true,JMail不会抛出例外错误。 JMail.Send()会根据操作结果返回true或false
Jmail.Silent=false;
//Jmail创建的日志,前提loging属性设置为true
Jmail.Logging=true;
//字符集,缺省为"US-ASCII"
Jmail.Charset="GB2312";
//指定内容传送时的编码方式,缺省是"Quoted-Printable"
//Jmail.ContentTransferEncoding = "base64";
//这个属性可以用来改变附件编码方式(缺省是"base64). 可以选择使用的是"base64", "uuencode" or "quoted-printable"
Jmail.Encoding = "base64";
//是否将信头编码成iso-8859-1字符集. 缺省是true
Jmail.ISOEncodeHeaders = false;
//指定mime版本。缺省是"1.0"
//Jmail.MimeVersion = "1.0";
//优先级. 范围在1-5之间 【 1 高优先级. 有些邮件程序称之为紧急 2 也是高优先级 3 普通优先级 4 低优先级 5 最低的优先级】
Jmail.Priority = 2;
//string str=Jmail.Date.ToString();//=System.DateTime.Now.ToString();
//设置发件人邮件地址
Jmail.From=FromMail;
//设置发件人姓名
Jmail.FromName=FromName;
//发件人邮件用户名
Jmail.MailServerUserName=FromMail;//"康康" <121335337@163.com>
//发件人邮件密码
Jmail.MailServerPassWord=Password;
//设置邮件标题
Jmail.Subject=mail.sSubject;
//指定是否发件人需要一个回执. 缺省是false
bool bolReturnReceipt=mail.iReturnReceipt==1?true:false;
Jmail.ReturnReceipt =bolReturnReceipt;
if(bolReturnReceipt)
{
//指定一个可选的回信地址
Jmail.ReplyTo=FromMail;
Jmail.AddHeader("Disposition-Notification-To",FromName+"<"+FromMail+">");
}
//邮件内容
Jmail.Body=mail.sContent;
//发送图片的处理
string sPath="/OA/eWebEditorNet/UploadFile/";
string sPath2="/oa/eWebEditorNet/UploadFile/";
if(Jmail.Body.IndexOf(sPath)!=-1)
{
Jmail.Body = Jmail.Body.Replace(sPath, (Common_Core.LDK.GetUrlRoot() + sPath));
}
else if(Jmail.Body.IndexOf(sPath2)!=-1)
{
Jmail.Body = Jmail.Body.Replace(sPath2, (Common_Core.LDK.GetUrlRoot() + sPath2));
}
//System.Web.HttpContext.Current.Server.
//设置延期发送. 如果邮件服务器支持的话,消息到了这个时间才会发送
//Jmail.DeferredDelivery=System.DateTime.Now;
//收件人
Jmail.ClearRecipients(); //清除收件人列表
string[] strAddr=mail.sRecipient.Trim().Split (',');
for(int i=0;i<strAddr.Length ;i++)
{
if(strAddr[i]!=string.Empty)
{
string strMailTemp = Common_Core.LDK.EmailOnly(strAddr[i]);
if(strMailTemp!=string.Empty)
{
Jmail.AddRecipient(strMailTemp,string.Empty,string.Empty); //添加收件人
}
}
}
//Jmail.Date =Convert.ToDateTime(mail.dAtSendDate);
//抄送人
string[] strAddrCC=mail.sRecipientCC.Trim().Split (',');
for(int i=0;i<strAddrCC.Length;i++)
{
if(strAddrCC[i]!=string.Empty)
{
string strMailTemp = Common_Core.LDK.EmailOnly(strAddrCC[i]);
if(strMailTemp!=string.Empty)
{
Jmail.AddRecipientCC(strMailTemp,string.Empty,string.Empty); //添加抄送人
}
}
}
//密送人
string[] strAddrBCC=mail.sRecipientBCC.Trim().Split (',');
for(int i=0;i<strAddrBCC.Length;i++)
{
if(strAddrBCC[i]!=string.Empty)
{
string strMailTemp = Common_Core.LDK.EmailOnly(strAddrBCC[i]);
if(strMailTemp!=string.Empty)
{
Jmail.AddRecipientBCC(strMailTemp,string.Empty); //添加密送人
}
}
}
//邮件附件 [注]:加了附件,要把Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。
Jmail.ClearAttachments(); //清除附件列表
string strTempID=System.Guid .NewGuid ().ToString ();
string strSendAtt="";
try
{
if(sAttachments.Trim()!=string.Empty)
{
string[] attachments=sAttachments.Trim().Split('\n');
string[] attSrcs=strSrcFiles.Split ('\n');
string strTempFile="";
for(int i=0;i<attachments.Length;i++)
{
if(attachments[i]!=string.Empty)
{
strTempFile=CreateTempFile(attachments[i],attSrcs[i]);
strSendAtt=strSendAtt+strTempFile+"\n";
Jmail.AddAttachment(strTempFile,true,null);
}
}
}
else
{
//(信件的contentype. 缺省是"text/plain" :字符串)如果你以HTML格式发送邮件, 改为"text/html"即可。
Jmail.ContentType="text/html";
}
}
catch(Exception eb)
{
return eb.Message ;
}
//
try
{
bool flag=Jmail.Send(SMTPServer,false);
//强制JMail关闭缓冲的与邮件服务器的连接
Jmail.Close();
DeleteTempFile(strSendAtt);
return flag==false?Jmail.ErrorMessage :string.Empty;
}
catch(Exception ex)
{
return ex.Message;
}
}
/// 用Jmail组件发送邮件
/// </summary>
private static string SendMailWithJmail(string SMTPServer,int SMTPPort,string FromMail,string Password,string FromName,bool SMTPAuth,MailInfo mail,string sAttachments,string strSrcFiles)
{
jmail.Message Jmail=new jmail.Message(); //创建消息对象
//Silent属性:如果设置为true,JMail不会抛出例外错误。 JMail.Send()会根据操作结果返回true或false
Jmail.Silent=false;
//Jmail创建的日志,前提loging属性设置为true
Jmail.Logging=true;
//字符集,缺省为"US-ASCII"
Jmail.Charset="GB2312";
//指定内容传送时的编码方式,缺省是"Quoted-Printable"
//Jmail.ContentTransferEncoding = "base64";
//这个属性可以用来改变附件编码方式(缺省是"base64). 可以选择使用的是"base64", "uuencode" or "quoted-printable"
Jmail.Encoding = "base64";
//是否将信头编码成iso-8859-1字符集. 缺省是true
Jmail.ISOEncodeHeaders = false;
//指定mime版本。缺省是"1.0"
//Jmail.MimeVersion = "1.0";
//优先级. 范围在1-5之间 【 1 高优先级. 有些邮件程序称之为紧急 2 也是高优先级 3 普通优先级 4 低优先级 5 最低的优先级】
Jmail.Priority = 2;
//string str=Jmail.Date.ToString();//=System.DateTime.Now.ToString();
//设置发件人邮件地址
Jmail.From=FromMail;
//设置发件人姓名
Jmail.FromName=FromName;
//发件人邮件用户名
Jmail.MailServerUserName=FromMail;//"康康" <121335337@163.com>
//发件人邮件密码
Jmail.MailServerPassWord=Password;
//设置邮件标题
Jmail.Subject=mail.sSubject;
//指定是否发件人需要一个回执. 缺省是false
bool bolReturnReceipt=mail.iReturnReceipt==1?true:false;
Jmail.ReturnReceipt =bolReturnReceipt;
if(bolReturnReceipt)
{
//指定一个可选的回信地址
Jmail.ReplyTo=FromMail;
Jmail.AddHeader("Disposition-Notification-To",FromName+"<"+FromMail+">");
}
//邮件内容
Jmail.Body=mail.sContent;
//发送图片的处理
string sPath="/OA/eWebEditorNet/UploadFile/";
string sPath2="/oa/eWebEditorNet/UploadFile/";
if(Jmail.Body.IndexOf(sPath)!=-1)
{
Jmail.Body = Jmail.Body.Replace(sPath, (Common_Core.LDK.GetUrlRoot() + sPath));
}
else if(Jmail.Body.IndexOf(sPath2)!=-1)
{
Jmail.Body = Jmail.Body.Replace(sPath2, (Common_Core.LDK.GetUrlRoot() + sPath2));
}
//System.Web.HttpContext.Current.Server.
//设置延期发送. 如果邮件服务器支持的话,消息到了这个时间才会发送
//Jmail.DeferredDelivery=System.DateTime.Now;
//收件人
Jmail.ClearRecipients(); //清除收件人列表
string[] strAddr=mail.sRecipient.Trim().Split (',');
for(int i=0;i<strAddr.Length ;i++)
{
if(strAddr[i]!=string.Empty)
{
string strMailTemp = Common_Core.LDK.EmailOnly(strAddr[i]);
if(strMailTemp!=string.Empty)
{
Jmail.AddRecipient(strMailTemp,string.Empty,string.Empty); //添加收件人
}
}
}
//Jmail.Date =Convert.ToDateTime(mail.dAtSendDate);
//抄送人
string[] strAddrCC=mail.sRecipientCC.Trim().Split (',');
for(int i=0;i<strAddrCC.Length;i++)
{
if(strAddrCC[i]!=string.Empty)
{
string strMailTemp = Common_Core.LDK.EmailOnly(strAddrCC[i]);
if(strMailTemp!=string.Empty)
{
Jmail.AddRecipientCC(strMailTemp,string.Empty,string.Empty); //添加抄送人
}
}
}
//密送人
string[] strAddrBCC=mail.sRecipientBCC.Trim().Split (',');
for(int i=0;i<strAddrBCC.Length;i++)
{
if(strAddrBCC[i]!=string.Empty)
{
string strMailTemp = Common_Core.LDK.EmailOnly(strAddrBCC[i]);
if(strMailTemp!=string.Empty)
{
Jmail.AddRecipientBCC(strMailTemp,string.Empty); //添加密送人
}
}
}
//邮件附件 [注]:加了附件,要把Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。
Jmail.ClearAttachments(); //清除附件列表
string strTempID=System.Guid .NewGuid ().ToString ();
string strSendAtt="";
try
{
if(sAttachments.Trim()!=string.Empty)
{
string[] attachments=sAttachments.Trim().Split('\n');
string[] attSrcs=strSrcFiles.Split ('\n');
string strTempFile="";
for(int i=0;i<attachments.Length;i++)
{
if(attachments[i]!=string.Empty)
{
strTempFile=CreateTempFile(attachments[i],attSrcs[i]);
strSendAtt=strSendAtt+strTempFile+"\n";
Jmail.AddAttachment(strTempFile,true,null);
}
}
}
else
{
//(信件的contentype. 缺省是"text/plain" :字符串)如果你以HTML格式发送邮件, 改为"text/html"即可。
Jmail.ContentType="text/html";
}
}
catch(Exception eb)
{
return eb.Message ;
}
//
try
{
bool flag=Jmail.Send(SMTPServer,false);
//强制JMail关闭缓冲的与邮件服务器的连接
Jmail.Close();
DeleteTempFile(strSendAtt);
return flag==false?Jmail.ErrorMessage :string.Empty;
}
catch(Exception ex)
{
return ex.Message;
}
}

浙公网安备 33010602011771号