using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.IO;
using System.Net.Mail;
using System.Threading;
namespace FuZhongBase
{
///
///SendMail 的摘要说明
///
public class Mail
{
public Mail()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
#region 电子邮件发送-----------------------------------------------------------------------------
///
/// 群发邮件
///
/// 收件人地址(可以是多个地址用"|"/","/";"隔开)
/// 邮件标题
/// 邮件内容
/// 是否是HTML邮件
/// 发件人地址
/// 发件人名称
/// 发件人邮箱密码
/// 发件人SMTP
///
public static string SendMail(string strTo, string strTitle, string strBody, bool strIsHTML, string strFrom, string strLoginName, string strPassword, string strSMTP, string strFree)
{
string[] str = strTo.Split(new char[] { ',', ';', '|' });
string strCount = "";
MailMessage msg = new MailMessage();
msg.From = new MailAddress(strFrom, strLoginName, System.Text.Encoding.UTF8);
/* 上面3个参数分别是发件人地址,发件人姓名,编码*/
msg.Subject = strTitle; //邮件标题
msg.SubjectEncoding = System.Text.Encoding.UTF8; //邮件标题编码
msg.Body = strBody; //邮件内容
msg.BodyEncoding = System.Text.Encoding.UTF8; //邮件内容编码
msg.IsBodyHtml = strIsHTML; //是否是HTML邮件
msg.Priority = MailPriority.High; //邮件优先级
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential(strFrom, strPassword);
client.Host = strSMTP;
//client.Port = "";
client.DeliveryMethod = SmtpDeliveryMethod.Network;
object userState = msg;
for (int i = 0; i < str.Length - 1; i++)
{
msg.To.Add(str[i].ToString());
}
try
{
System.Threading.Thread.Sleep(200);
client.Send(msg);
strCount = "发送成功";
}
catch (SmtpException ex)
{
strCount = "发送失败";
}
return strCount;
}
///
/// 邮件发送类(请先对Subject主题、 BodyText正文、toEmail收件箱赋值、EAddress邮件地址,Esmtp邮箱的smtp,Epass邮箱密码)
///
/// */
public void SendMails(string ESubject, string EtoEmail, string EBodyText, string userName, string EAddress, string Esmtp, string Epass)
{
//把群发的邮件存入数组中
string toEmail = EtoEmail.Trim();
toEmail = toEmail.Replace(",", ",");
toEmail = toEmail.Replace(" ", ",");
toEmail = toEmail.Replace(" ", ",");
toEmail = toEmail.Replace("|", ",");
toEmail = toEmail.Replace("\\", ",");
toEmail = toEmail.Replace("、", ",");
toEmail = toEmail.Replace("/", ",");
string[] MtoEmail = toEmail.Split(',');
try
{
for (int i = 0; i < MtoEmail.Length - 1; i++)
{
if (MtoEmail[i].Trim() != "")
{
Mails(ESubject, MtoEmail[i], EBodyText, userName, EAddress, Esmtp, Epass);//发送邮件
}
}
}
catch
{
}
}
public static void Mails(string ESubject, string toEmail, string EBodyText, string userName, string EAddress, string Esmtp, string Epass)
{
try
{
MailMessage m_message = new MailMessage();
m_message.Subject = ESubject;
m_message.SubjectEncoding = System.Text.Encoding.UTF8;
m_message.Body = EBodyText;
m_message.BodyEncoding = System.Text.Encoding.UTF8;
m_message.IsBodyHtml = true;
m_message.From = new MailAddress(EAddress);
m_message.To.Add(new MailAddress(toEmail));
SmtpClient smtp = new SmtpClient(Esmtp);
smtp.UseDefaultCredentials = true;
smtp.Credentials = new System.Net.NetworkCredential(userName, Epass);
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Timeout = 10000;
smtp.Send(m_message);
}
catch (Exception ee)
{
throw ee;
}
}
#endregion
#region 电子邮件发送,以网页形式-----------------------------------------------------------------
///
/// 邮件发送类(请先对Subject主题、 url网址、toEmail收件箱赋值、EAddress邮件地址,Esmtp邮箱的smtp,Epass邮箱密码)
///
/// */
public static bool SendMailsWeb(string ESubject, string EtoEmail, string url, string userName, string EAddress, string Esmtp, string Epass)
{
string toEmail = EtoEmail.Trim();
toEmail = toEmail.Replace(",", ",");
toEmail = toEmail.Replace(" ", ",");
toEmail = toEmail.Replace(" ", ",");
toEmail = toEmail.Replace("|", ",");
toEmail = toEmail.Replace("\\", ",");
toEmail = toEmail.Replace("、", ",");
toEmail = toEmail.Replace("/", ",");
string[] MtoEmail = toEmail.Split(',');
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
System.IO.StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
string mailContent = sr.ReadToEnd();
try
{
for (int i = 0; i < MtoEmail.Length; i++)
{
if (MtoEmail[i].Trim() != "")
{
Mails(ESubject, MtoEmail[i], mailContent, userName, EAddress, Esmtp, Epass);
System.Threading.Thread.Sleep(500);
}
}
return true;
}
catch
{
return false;
}
}
#endregion
/*
说明:sendEmail方法用来执行发送邮件功能,该方法无返回值。
参数:sender表示发件人,senderuser表示发件人姓名,euser表示发件人的邮箱登录名,epwd表示发件人的邮箱密码,
receiver表示收件人,subject表示邮件主题,body表示邮件内容,eserver表示发送邮件服务器。
*/
public void sendEmail(string sender, string senderuser, string euser, string epwd, string receiver, string subject, string body, string eserver)
{
jmail.MessageClass jmMessage = new jmail.MessageClass();
jmMessage.Charset = "GB2312";
jmMessage.ISOEncodeHeaders = false;
jmMessage.From = sender;
jmMessage.FromName = senderuser;
jmMessage.Subject = subject;
jmMessage.MailServerUserName = euser;
jmMessage.MailServerPassWord = epwd;
jmMessage.AddRecipient(receiver, "", "");
//if (ddlAccessories.Items.Count > 0)
//{
// for (int i = 0; i < ddlAccessories.Items.Count; i++)
// {
// string path = ddlAccessories.Items[i].Value;
// jmMessage.AddAttachment(@path, true, "");
// }
//}
jmMessage.Body = body;
if (jmMessage.Send(eserver, false))
{
//return true;
}
else
//return false;
jmMessage = null;
}
}
}