您的位置:首页 > 编程语言 > C#

C# 用 SMPT 发送邮件

2009-09-05 11:11 281 查看
/***************************************************************************
* 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)

4000
{
// 教师邮箱
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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息