asp.net发送邮件(smtp方式发邮件)的二个例子

发布时间:2019-08-22编辑:脚本学堂
有关asp.net发送邮件的二个例子,在asp.net中发邮件,大多是使用smtp方式实现,这里分享的二个asp.net发送邮件的代码,均采用smtp方式,可以发送html格式的邮件,并可以发送带附件的邮件。

方法一、asp.net发送邮件

代码:
 

复制代码 代码示例:

//引用
using System.Text;

namespace JOYHEN.CommonMessage.NetMessage
{
/// <summary>
///asp.net发送邮件
/// </summary>
public class SysMailMessage
{
private string _subject;
private string _body;
private string _from;
private string _fromName;
private string _recipientName;
private string _mailDomain;
private int _mailserverport;
private string _username;
private string _password;
private bool _html;
private string _recipient;
private string _attachMentPath;

/// <summary>
/// 主题
/// </summary>
public string Subject
{
get { return this._subject; }
set { this._subject = value; }
}

/// <summary>
/// 正文
/// </summary>
public string Body
{
get { return this._body; }
set { this._body = value; }
}
/// <summary>
/// 发件人地址
/// </summary>
public string From
{
get { return _from; }
set { this._from = value; }
}
/// <summary>
/// 发件人姓名
/// </summary>
public string FromName
{
get { return this._fromName; }
set { this._fromName = value; }
}
/// <summary>
/// 收件人姓名
/// </summary>
public string RecipientName
{
get { return this._recipientName; }
set { this._recipientName = value; }
}
/// <summary>
/// 邮箱域
/// </summary>
public string MailDomain
{
get { return this._mailDomain; }
set { this._mailDomain = value; }
}

/// <summary>
/// 邮件服务器端口号
/// </summary>
public int MailDomainPort
{
set { this._mailserverport = value; }
get { return this._mailserverport; }
}
/// <summary>
/// SMTP认证用户名
/// </summary>
public string MailServerUserName
{
set { this._username = value.Trim() != "" ? value.Trim() : ""; }
get { return _username; }
}
/// <summary>
/// SMTP认证密码
/// </summary>
public string MailServerPassWord
{
set { this._password = value; }
get { return _password; }
}
/// <summary>
///是否Html邮件
/// </summary>
public bool Html
{
get { return this._html; }
set { this._html = value; }
}
/// <summary>
/// 收件人的邮箱地址
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
public bool AddRecipient(params string[] username)
{
this._recipient = username[0].Trim();
return true;
}
/// <summary>
/// 附件
/// </summary>
/// <remarks>多个附件路径以分号隔开</remarks>
public string AttachMentPath
{
get { return this._attachMentPath; }
set { this._attachMentPath = value; }
}

/// <summary>
/// 发送
/// </summary>
/// <returns></returns>
public bool Send()
{
System.Net.Mail.MailMessage myEmail = new System.Net.Mail.MailMessage();
Encoding eEncod = Encoding.GetEncoding("utf-8");
myEmail.From = new System.Net.Mail.MailAddress(this.From, this.Subject, eEncod);
myEmail.To.Add(this._recipient);
myEmail.Subject = this.Subject;
myEmail.IsBodyHtml = true;
myEmail.Body = this.Body;
myEmail.Priority = System.Net.Mail.MailPriority.Normal;
myEmail.BodyEncoding = Encoding.GetEncoding("utf-8");
if (!string.IsNullOrWhiteSpace(this.AttachMentPath))
{
string[] arrAttach = this.AttachMentPath.Split(';');//拆分附件
for (int i = 0; i < arrAttach.Length; i++)
{
System.Net.Mail.Attachment mailAttach = new System.Net.Mail.Attachment(arrAttach[i]);
myEmail.Attachments.Add(mailAttach);
}
}

System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.Host = this.MailDomain;
smtp.Port = this.MailDomainPort;
smtp.Credentials = new System.Net.NetworkCredential(this.MailServerUserName, this.MailServerPassWord);

//当不是25端口(gmail:587)
if (this.MailDomainPort != 25)
{
smtp.EnableSsl = true;
}

try
{
smtp.Send(myEmail);
}
catch (System.Net.Mail.SmtpException e)
{
return false;
}

return true;
}
}
}

方法二、asp.net发送邮件

asp.net发送邮件

例子:
 

复制代码 代码示例:

MailMessage mailMsg = new MailMessage();
//设置收件人的邮件地址
mailMsg.To = "xxxx@qq.com ";

//设置发送者的邮件地址
mailMsg.From = "bailichun@vip.qq.com ";
//设置邮件主题
mailMsg.Subject = "测试 ";

//设置邮件内容
mailMsg.Body = "内容 ";
mailMsg.BodyFormat = MailFormat.Text;
mailMsg.Priority = MailPriority.Normal;
try
{
//设置发送邮件服务器
SmtpMail.SmtpServer = "localhost";
//发送邮件
SmtpMail.Send(mailMsg);
}
catch
{
}
 
//发送邮件代码
MailObj _mail = new MailObj();
_mail.sendmail("lxx@qq.com", "测试", "<b>内容</b>");
_mail.Dispose();
//核心代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;
using System.Net.Mail;
using System.Text;
namespace EC
{
/// <summary>
///邮件发送
/// </summary>
public class MailObj
{
private string _strHost = string.Empty;
private string _strAccount = string.Empty;
private string _strPwd = string.Empty;
private string _strFrom = string.Empty;
#region 构造与析构函数
public MailObj()
{
_strHost = "smtp.163.com"; //STMP服务器地址
_strAccount = "aa"; //SMTP服务帐号
_strPwd = "123456"; //SMTP服务密码
_strFrom = "aa@163.com";//发送方邮件地址
}
/// <summary>
/// 发送邮件购造函数
/// </summary>
/// <param name="strHost">STMP服务器地址:smtp.163.com</param>
/// <param name="strAccount">SMTP服务帐号:liugongxun</param>
/// <param name="strPwd">SMTP服务密码:123456</param>
/// <param name="strFrom">发送方邮件地址:liugongxun@163.com</param>
public MailObj(string strHost, string strAccount, string strPwd, string strFrom)
{
_strHost = strHost;
_strAccount = strAccount;
_strPwd = strPwd;
_strFrom = strFrom;
}
~MailObj()
{
Dispose();
}
public void Dispose()
{
GC.SuppressFinalize(this);
}
#endregion
#region 发送邮件
public bool sendMail(string to, string title, string content)
{
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = _strHost;//指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(_strAccount, _strPwd);//用户名和密码
MailMessage _mailMessage = new MailMessage(_strFrom, to);
_mailMessage.Subject = title;//主题
_mailMessage.Body = content;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.High;//优先级
try
{
_smtpClient.Send(_mailMessage);
return true;
}
catch
{
return false;
}
}
#endregion
}
}