天天看点

C# 用 SMPT 发送邮件

/***************************************************************************

* Created: 2009-9-4

* NameSpace: OLEMS.Model

* Filename: EmailInfo.cs

* Author: Liangyy

* Version: 1.0

* Description: Defined The EmailInfo

*****************************************************************************/

using System;

using System.Net.Mail;

namespace Model

{

public class EmailInfo

{

/

#region Private Fields

/// <summary>

/// Definite the HostEmail .

/// </summary>

private string sendFromEmail;

/// <summary>

/// Definite the HostEmail's password .

/// </summary>

private string sendFromPwd;

/// <summary>

/// Definite the ClientEmail.

/// </summary>

private string sendToEmail;

/// <summary>

/// Definite the Email's Theme.

/// </summary>

private string subject;

/// <summary>

/// Definite the Email's Content.

/// </summary>

private string content;

/// <summary>

/// Definite the HostEmail's Server Device.

/// </summary>

private string smtpServer;

/// <summary>

/// Definite the HostEmail's Server Port.

/// Port=25.

/// </summary>

private int smtpPort;

#endregion

/

#region Pubicl Property

/// <summary>

/// Definite the HostEmail .

/// </summary>

public string SendFromEmail

{

get { return sendFromEmail; }

set { sendFromEmail = value; }

}

/// <summary>

/// Definite the HostEmail's password .

/// </summary>

public string SendFromPwd

{

get { return sendFromPwd; }

set { sendFromPwd = value; }

}

/// <summary>

/// Definite the ClientEmail.

/// </summary>

public string SendToEmail

{

get { return sendToEmail; }

set { sendToEmail = value; }

}

/// <summary>

/// Definite the Email's Theme.

/// </summary>

public string Subject

{

get { return subject; }

set { subject = value; }

}

/// <summary>

/// Definite the Email's Content.

/// </summary>

public string Content

{

get { return content; }

set { content = value; }

}

/// <summary>

/// Definite the HostEmail's Server Device.

/// </summary>

public string SmtpServer

{

get { return smtpServer; }

set { smtpServer = value; }

}

/// <summary>

/// Definite the HostEmail's Server Port.

/// Port=25.

/// </summary>

public int SmtpPort

{

get { return smtpPort; }

set { smtpPort = value; }

}

#endregion

}

}

/***************************************************************************

* Created: 2009-9-4

* NameSpace: OLEMS.Model

* Filename: EmailInfo.cs

* Author: Liangyy

* Version: 1.0

* Description: Defined The EmailInfo

*****************************************************************************/

using System;

using System.Net.Mail;

using Model;

namespace DAL

{

/// <summary>

/// 发送邮件

/// </summary>

public class DAL_SendEmail

{

/// <summary>

/// 发送邮件

/// </summary>

/// <param name="emailInfo"></param>

/// <returns></returns>

public bool SendEmailMsg(EmailInfo emailInfo)

{

MailMessage eMailMsg = new MailMessage(emailInfo.SendFromEmail, emailInfo.SendToEmail);

try

{

// 邮件主题

eMailMsg.Subject = emailInfo.Subject;

// 邮件内容

eMailMsg.Body = emailInfo.Content;

// 内容格式

eMailMsg.IsBodyHtml = false;

// 内容编码

eMailMsg.BodyEncoding = System.Text.Encoding.Default;

// 优先级为高

eMailMsg.Priority = MailPriority.High;

// 使用的服务器和服务端口

SmtpClient client = new SmtpClient(emailInfo.SmtpServer, emailInfo.SmtpPort);

// 发送者的邮件地址和密码

client.Credentials = new System.Net.NetworkCredential(emailInfo.SendFromEmail, emailInfo.SendFromPwd);

// 发送邮件

client.Send(eMailMsg);

return true;

}

catch (Exception err)

{

Console.Write(err.Message);

return false;

}

finally

{

// 释放资源

eMailMsg.Dispose();

}

}

#region

/// <summary>

/// 发送邮件

/// </summary>

/// <param name="sendfrom"></param>

/// <param name="sendfrompwd"></param>

/// <param name="sendto"></param>

/// <param name="subject"></param>

/// <param name="body"></param>

/// <param name="smtpserver"></param>

/// <param name="smtport"></param>

/// <returns></returns>

public bool SendMailMsg_WithArgs(string sendfrom, string sendfrompwd, string sendto, string subject, string body, string smtpserver, int smtport)

{

MailMessage sendMsg = new MailMessage(sendfrom, sendto);

try

{

// 邮件主题

sendMsg.Subject = subject;

// 邮件内容

sendMsg.Body = body;

// 内容格式

sendMsg.IsBodyHtml = false;

// 内容编码

sendMsg.BodyEncoding = System.Text.Encoding.Default;

// 使用的服务器和服务端口

SmtpClient client = new SmtpClient(smtpserver, smtport);

// 发送者的邮件地址和密码

client.Credentials = new System.Net.NetworkCredential(sendfrom, sendfrompwd);

// 发送邮件

client.Send(sendMsg);

return true;

}

catch (Exception err)

{

//Response.Write(err.Message.ToString());

return false;

}

finally

{

// 释放资源

sendMsg.Dispose();

}

}

#endregion

}

}

/// <summary>

/// 发布考试信息(发送邮件的同时,把考试状态改为已发布)??

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void btnSendExamination_Click(object sender, EventArgs e)

{

StringBuilder strToEmail = new StringBuilder();

// 发送人

UI_emailInfo.SendFromEmail = txtFromEmai.Text;

// 发送人密码

UI_emailInfo.SendFromPwd = txtFromPwd.Text;

// 主题

UI_emailInfo.Subject = txtTheme.Text;

// 内容

UI_emailInfo.Content = txtConcont.Text;

// 选中的老师邮箱(遍历)

foreach (GridViewRow row in grdvTeacherList.Rows)

{

if (((CheckBox)row.FindControl("teacherEmail")).Checked)

{

// 教师邮箱

UI_teacherInfo.TeacherEmail = ((CheckBox) row.FindControl("teacherEmail")).Text;

strToEmail.Append(UI_teacherInfo.TeacherEmail+",");

}

}

string[] arrEmailSender = UI_emailInfo.SendFromEmail.Split(new char[] { '@', '.' });

// smtp.126.com 服务器

UI_emailInfo.SmtpServer = "smtp." + arrEmailSender[1] + ".com";

// 25端口

UI_emailInfo.SmtpPort = 25;

// 群发的邮箱数组

string[] arrToEmail = strToEmail.ToString().Substring(0, strToEmail.Length - 1).Split(Convert.ToChar(","));

// 遍历邮箱数组,分开发送给接收者

foreach (string s in arrToEmail)

{

// 接收者的邮箱

UI_emailInfo.SendToEmail = s;

// 发送邮件

if (dal_SendEmail.SendEmailMsg(UI_emailInfo))

{

Response.Write("发送成功:"+s+"<BR/>");

}

else

{

Page.ClientScript.RegisterStartupScript(Page.GetType(), "key", "alert('可能邮箱地址有误 ');", true);

}

}

}