以下是我拷贝了别人的一段代码改了后,
可以实现同时发送两个收件人的功能,但是我想实现多发,(比如三个时,提示不成功)
哪为仁兄帮忙看看:需要改哪个地方,还是这个发送的方法不能实现群发???
这是方法的全部代码:
private void SendMyMail()
{
string SendTos = "[email protected]"; //收件人
string CcTos = ",[email protected]"; //抄送人
//string second = ",[email protected]";
string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos, ","); //总收件人 //string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos + second , ","); //总收件人 string FromMail = "[email protected]"; //发件人
string Title = "你好"; //邮件主题
string Body = "附件里重要文档,请查收!"; //邮件主体
if (SendTos != "")
{
string MailUserName = "liyou502"; //FromMail.Substring(0, FromMail.IndexOf('@'));
string MailPassword = "****"; //发件人邮箱密码 MailMessage mailmessage = new MailMessage();
MailAddress n = new MailAddress(FromMail); mailmessage.From = n;
mailmessage.Subject = Title;
mailmessage.Body = Body;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = "smtp.163.com";
client.Credentials = new System.Net.NetworkCredential(MailUserName,MailPassword);
//向收件人和抄送人循环发送
for (int j = 0; j < Receiver.Length; j++)
{
mailmessage.To.Add(Receiver[j].ToString());
try
{
client.Send(mailmessage);
Response.Write("成功发送!");
}
catch (Exception)
{
Response.Write("<script language='javascript'>alert('邮件发送失败!')</script>");
}
}
}
}
可以实现同时发送两个收件人的功能,但是我想实现多发,(比如三个时,提示不成功)
哪为仁兄帮忙看看:需要改哪个地方,还是这个发送的方法不能实现群发???
这是方法的全部代码:
private void SendMyMail()
{
string SendTos = "[email protected]"; //收件人
string CcTos = ",[email protected]"; //抄送人
//string second = ",[email protected]";
string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos, ","); //总收件人 //string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos + second , ","); //总收件人 string FromMail = "[email protected]"; //发件人
string Title = "你好"; //邮件主题
string Body = "附件里重要文档,请查收!"; //邮件主体
if (SendTos != "")
{
string MailUserName = "liyou502"; //FromMail.Substring(0, FromMail.IndexOf('@'));
string MailPassword = "****"; //发件人邮箱密码 MailMessage mailmessage = new MailMessage();
MailAddress n = new MailAddress(FromMail); mailmessage.From = n;
mailmessage.Subject = Title;
mailmessage.Body = Body;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = "smtp.163.com";
client.Credentials = new System.Net.NetworkCredential(MailUserName,MailPassword);
//向收件人和抄送人循环发送
for (int j = 0; j < Receiver.Length; j++)
{
mailmessage.To.Add(Receiver[j].ToString());
try
{
client.Send(mailmessage);
Response.Write("成功发送!");
}
catch (Exception)
{
Response.Write("<script language='javascript'>alert('邮件发送失败!')</script>");
}
}
}
}
MailAddress to = new MailAddress(Receiver[j].ToString);mailmessage.To.Add(to)
这句话是你要输入的收件人地址,可以添加多个,如string CcTos = "[email protected],[email protected],[email protected]"
中间必须要用“,”分割
string[] Receiver = System.Text.RegularExpressions.Regex.Split(CcTos, ","); //总收件人
总收件人只需要CcTos这个参数就可以了
代码中把","替换成你用的符号就行了
我把代码改后,提示成功,但是如果邮箱地址如果是从数据库中读取的,那怎么处理赋值啊!先谢谢!一会就结帖!!!
try
{
string[] Receiver = new string[5];
for (int i = 0; i < 5; i++) //模拟数据库的返回记录
{
Receiver[i] = ds.Tables[0].Rows[i]["email"].ToString();
MailAddress to = new MailAddress(Receiver[i].ToString());
mailmessage.To.Add(to);
client.Send(mailmessage);
Response.Write("成功发送!");
}
}现在的问题是如何让每个地址只发一次,因为现在的结果是Receiver[0]-Receiver[5]分别发送5-1次,你们谁快来看看啊!
SqlHelper db=new SqlHelper();
string CcTos ="";
SqlDataReader dr=db.Getdr("查询语句");
while(dr.read())
{
CcTos=CcTos+","+dr.GetString(0);
}
private void SendMyMail()
{
string SendTos = "[email protected]"; //收件人 SqlHelper db=new SqlHelper();
string CcTos ="";
SqlDataReader dr=db.Getdr("查询语句");
while(dr.read())
{
CcTos=CcTos+","+dr.GetString(0);
}//抄送人 //string second = ",[email protected]";
string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos, ","); //总收件人 //string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos + second , ","); //总收件人 string FromMail = "[email protected]"; //发件人
string Title = "你好"; //邮件主题
string Body = "附件里重要文档,请查收!"; //邮件主体
if (SendTos != "")
{
string MailUserName = "liyou502"; //FromMail.Substring(0, FromMail.IndexOf( '@ '));
string MailPassword = "****"; //发件人邮箱密码 MailMessage mailmessage = new MailMessage();
MailAddress n = new MailAddress(FromMail); mailmessage.From = n;
mailmessage.Subject = Title;
mailmessage.Body = Body;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = "smtp.163.com";
client.Credentials = new System.Net.NetworkCredential(MailUserName,MailPassword);
//向收件人和抄送人循环发送
for (int j = 0; j < Receiver.Length; j++)
{
mailmessage.To.Add(Receiver[j].ToString());
try
{
client.Send(mailmessage);
Response.Write("成功发送!");
}
catch (Exception)
{
Response.Write(" <script language= 'javascript ' >alert( '邮件发送失败! ') </script >");
}
}
}
}
我仿你代码,用数组实现了,谢谢!!!!