C# 使用JMail发送邮件
2012-01-08 19:33
573 查看
private string m_strMail_Server = ""; //邮件服务器
private string m_strMail_UserName = ""; //邮件服务器用户账号
private string m_strMail_Password = ""; //邮件服务器用户密码
public string SendMail()
{
string strSubject = "", strBody = ""; //主题和内容
string strAttachment = ""; //附件
string strSender = "", strSenderName = ""; //发件人账号, 发件人显示名称
string strReceiver = "", strCC = "", strBCC = ""; //收件人 抄送人 暗送人
try
{
#region JMail预设置
jmail.Message jm = new jmail.Message();
jm.MailServerUserName = m_strMail_UserName;
jm.MailServerPassWord = m_strMail_Password;
jm.Logging = true;
jm.Silent = true;
jm.Charset = "gb2312";
jm.Encoding = "base64";
jm.ContentTransferEncoding = "base64";
//jm.ContentType = "text/html"; 由于需要挂载附件,因此此处注释,否则附件将显示为乱码
#endregion
//获取待发邮件清单
DataSet ds = Mail_GetList();
#region Format
/*
* SENDER
* SENDER_NAME
* RECEIVER
* CC
* BCC
* SUBJECT
* HEADER
* CONTENT
* FOOTER
* ATTACHMENT
*/
#endregion
//有待发送的记录
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
//取项值
strSender = row["SENDER"].ToString().Trim();
strSenderName = row["SENDER_NAME"].ToString().Trim();
strReceiver = row["RECEIVER"].ToString().Trim();
strCC = row["CC"].ToString().Trim();
strBCC = row["BCC"].ToString().Trim();
strSubject = row["SUBJECT"].ToString().Trim();
strBody = row["HEADER"].ToString().Trim() + row["CONTENT"].ToString().Trim() + row["FOOTER"].ToString().Trim();
strAttachment = row["ATTACHMENT"].ToString().Trim();
//邮件发送
try
{
#region 发送人
jm.From = strSender;
jm.FromName = strSenderName;
#endregion
#region 接收人,抄送,暗送
jm.Recipients.Clear();
//收件人
if (strReceiver.Trim() != "")
{
string[] strReceiverList = strReceiver.Trim().Trim(';').Trim().Split(';');
foreach (string strTempReceiver in strReceiverList)
{
jm.AddRecipient(strTempReceiver.Trim(), strTempReceiver, strTempReceiver);
}
}
//抄送
if (strCC.Trim() != "")
{
string[] strCCList = strCC.Trim().Trim(';').Trim().Split(';');
foreach (string strTempCC in strCCList)
{
jm.AddRecipientCC(strTempCC.Trim(), strTempCC, strTempCC);
}
}
//暗送
if (strBCC.Trim() != "")
{
string[] strBCCList = strBCC.Trim().Trim(';').Trim().Split(';');
foreach (string strTempBCC in strBCCList)
{
jm.AddRecipientBCC(strTempBCC.Trim(), strTempBCC);
}
}
#endregion
#region 邮件内容
jm.ClearAttachments();
jm.Subject = strSubject;
//HTML标记必须封闭
strBody = "<html>" + strBody + "</html>";
jm.HTMLBody = strBody;
//附件
if (strAttachment.Trim() != "")
{
string[] strAttachmentList = strAttachment.Trim().Trim('|').Trim().Split('|');
ArrayList strAttachmentListResult = new ArrayList();
#region 剔除无效、重复附件
foreach (string strTempAttachment in strAttachmentList)
{
//附件不为空 且 不重复
if (strTempAttachment.Trim() != "" && !strAttachmentListResult.Contains(strTempAttachment.ToUpper().Trim()))
{
strAttachmentListResult.Add(strTempAttachment.ToUpper().Trim());
}
}
#endregion
foreach (string strTempAttachment in strAttachmentListResult)
{
jm.AddAttachment(strTempAttachment.Trim(), true, "application/octet-stream");
}
}
#endregion
#region 发送
if (jm.Send(m_strMail_Server, false))
{
//成功
try
{
//LOG
}
catch { }
try
{
//发送成功
}
catch { }
}
else
{
//失败
try
{
//LOG
}
catch { }
try
{
//发送失败
}
catch { }
}
#endregion
}
catch (Exception ex) //发送邮件的异常
{
//失败
try
{
//LOG
}
catch { }
try
{
//发送失败
}
catch { }
}
}
}
//else
//{
// return "NONE:没有可发送的记录!";
//}
jm.Clear();
jm = null;
ds = null;
return "SUCCESS";
}
catch (Exception ex) //服务层面的异常
{
return "ERROR: Service -- " + ex.Message;
}
}
private string m_strMail_UserName = ""; //邮件服务器用户账号
private string m_strMail_Password = ""; //邮件服务器用户密码
public string SendMail()
{
string strSubject = "", strBody = ""; //主题和内容
string strAttachment = ""; //附件
string strSender = "", strSenderName = ""; //发件人账号, 发件人显示名称
string strReceiver = "", strCC = "", strBCC = ""; //收件人 抄送人 暗送人
try
{
#region JMail预设置
jmail.Message jm = new jmail.Message();
jm.MailServerUserName = m_strMail_UserName;
jm.MailServerPassWord = m_strMail_Password;
jm.Logging = true;
jm.Silent = true;
jm.Charset = "gb2312";
jm.Encoding = "base64";
jm.ContentTransferEncoding = "base64";
//jm.ContentType = "text/html"; 由于需要挂载附件,因此此处注释,否则附件将显示为乱码
#endregion
//获取待发邮件清单
DataSet ds = Mail_GetList();
#region Format
/*
* SENDER
* SENDER_NAME
* RECEIVER
* CC
* BCC
* SUBJECT
* HEADER
* CONTENT
* FOOTER
* ATTACHMENT
*/
#endregion
//有待发送的记录
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in ds.Tables[0].Rows)
{
//取项值
strSender = row["SENDER"].ToString().Trim();
strSenderName = row["SENDER_NAME"].ToString().Trim();
strReceiver = row["RECEIVER"].ToString().Trim();
strCC = row["CC"].ToString().Trim();
strBCC = row["BCC"].ToString().Trim();
strSubject = row["SUBJECT"].ToString().Trim();
strBody = row["HEADER"].ToString().Trim() + row["CONTENT"].ToString().Trim() + row["FOOTER"].ToString().Trim();
strAttachment = row["ATTACHMENT"].ToString().Trim();
//邮件发送
try
{
#region 发送人
jm.From = strSender;
jm.FromName = strSenderName;
#endregion
#region 接收人,抄送,暗送
jm.Recipients.Clear();
//收件人
if (strReceiver.Trim() != "")
{
string[] strReceiverList = strReceiver.Trim().Trim(';').Trim().Split(';');
foreach (string strTempReceiver in strReceiverList)
{
jm.AddRecipient(strTempReceiver.Trim(), strTempReceiver, strTempReceiver);
}
}
//抄送
if (strCC.Trim() != "")
{
string[] strCCList = strCC.Trim().Trim(';').Trim().Split(';');
foreach (string strTempCC in strCCList)
{
jm.AddRecipientCC(strTempCC.Trim(), strTempCC, strTempCC);
}
}
//暗送
if (strBCC.Trim() != "")
{
string[] strBCCList = strBCC.Trim().Trim(';').Trim().Split(';');
foreach (string strTempBCC in strBCCList)
{
jm.AddRecipientBCC(strTempBCC.Trim(), strTempBCC);
}
}
#endregion
#region 邮件内容
jm.ClearAttachments();
jm.Subject = strSubject;
//HTML标记必须封闭
strBody = "<html>" + strBody + "</html>";
jm.HTMLBody = strBody;
//附件
if (strAttachment.Trim() != "")
{
string[] strAttachmentList = strAttachment.Trim().Trim('|').Trim().Split('|');
ArrayList strAttachmentListResult = new ArrayList();
#region 剔除无效、重复附件
foreach (string strTempAttachment in strAttachmentList)
{
//附件不为空 且 不重复
if (strTempAttachment.Trim() != "" && !strAttachmentListResult.Contains(strTempAttachment.ToUpper().Trim()))
{
strAttachmentListResult.Add(strTempAttachment.ToUpper().Trim());
}
}
#endregion
foreach (string strTempAttachment in strAttachmentListResult)
{
jm.AddAttachment(strTempAttachment.Trim(), true, "application/octet-stream");
}
}
#endregion
#region 发送
if (jm.Send(m_strMail_Server, false))
{
//成功
try
{
//LOG
}
catch { }
try
{
//发送成功
}
catch { }
}
else
{
//失败
try
{
//LOG
}
catch { }
try
{
//发送失败
}
catch { }
}
#endregion
}
catch (Exception ex) //发送邮件的异常
{
//失败
try
{
//LOG
}
catch { }
try
{
//发送失败
}
catch { }
}
}
}
//else
//{
// return "NONE:没有可发送的记录!";
//}
jm.Clear();
jm = null;
ds = null;
return "SUCCESS";
}
catch (Exception ex) //服务层面的异常
{
return "ERROR: Service -- " + ex.Message;
}
}
相关文章推荐
- C#使用jmail组件发送邮件
- ASP.NET+C#使用JMail发送邮件
- C#中使用Jmail发送邮件
- Jmail c# 使用 发送邮件完全解决方案
- C#使用Jmail实现邮件的接收与发送详细示例
- ASP.Net环境下使用Jmail组件发送邮件[收藏]
- Java邮件开发(一):使用JMail发送一封简单邮件
- C# jmail发送邮件(带附件)
- ASP.Net环境下使用Jmail组件发送邮件
- 发送邮件的类(使用jmail)
- 使用jmail发送邮件
- C#使用OUTLOOK发送邮件
- ASP.Net环境下使用Jmail组件发送邮件
- 使用C#发送邮件
- java使用JMail通过QQ邮件服务器实现自动发送邮件
- C#使用SMTP协议发送邮件(腾讯企业邮箱)
- 使用C#邮件发送需要邮箱开通smtp功能
- ASP.Net环境下使用Jmail组件发送邮件[收藏]
- 使用C#发送正文带图片邮件
- 在ASP里使用 w3 Jmail4.3 组件发送邮件的代码