• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

使用MailMessage和SmtpClient类实现asp.net的邮件发送(有详细注释并已测试通过) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.     MailMessage类主要是用于获取邮件相关信息

2.        SmtpClient类主要用于同步或异步发送邮件

 

Html代码如下:

 

代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title></title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:FileUpload ID="FileUpload1" runat="server" />
        
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    
</div>
    
</form>
</body>
</html>

 

 

 

后台代码如下:

 

代码
  protected void Button1_Click(object sender, EventArgs e)
    {
        SendEmail();
    }

    
public void SendEmail()
    {
        
string from = "[email protected]";   //发送方邮箱
        string subject = "测试邮件";  //标题

        MailMessage newEmail 
= new MailMessage();

        
#region 发送方邮件
        newEmail.From 
= new MailAddress(from, from);
        
#endregion

        
#region 发送对象,可群发
        newEmail.To.Add(
new MailAddress("[email protected]"));  //接收方邮箱一
        newEmail.To.Add(new MailAddress("[email protected]"));  //接收方邮箱二
        #endregion


        
#region Subject
        newEmail.Subject 
= subject;  //标题
        #endregion

        
#region Body
        
string strBody = "<p><b>这里是内容</b></p>"//html格式,也可以是普通文本格式 
        newEmail.Body = strBody;  //内容
        #endregion

        
#region 附件
        Attachment MsgAttach 
= new Attachment(this.FileUpload1.PostedFile.FileName);//可通过一个FileUpload地址获取附件地址
        newEmail.Attachments.Add(MsgAttach);
        
#endregion

        
#region Deployment
        newEmail.IsBodyHtml 
= true;                //是否支持html
        newEmail.Priority = MailPriority.Normal;  //优先级
        #endregion

        
//发送方服务器信息
        SmtpClient smtpClient = new SmtpClient();
        smtpClient.UseDefaultCredentials 
= true;
        smtpClient.Credentials 
= new System.Net.NetworkCredential("发送方邮箱地址:如[email protected]""发送方邮箱密码:如123");
        smtpClient.Host 
= "smtp.163.com"//主机
       
        
//smtpClient.Send(newEmail);   //同步发送,程序将被阻塞

        
#region 异步发送, 会进入回调函数SendCompletedCallback,来判断发送是否成功
        smtpClient.SendCompleted 
+= new SendCompletedEventHandler(SendCompletedCallback);//回调函数
        string userState = "测试";
        smtpClient.SendAsync(newEmail, userState);
        
#endregion

    }

    
private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
    {
        
if (e.Cancelled)  //邮件发送被取消
        {

        }
        
if (e.Error != null)   //邮件发送失败
        {

        }
        
else   //发送成功
        {

        }
    }

 

 异步发送必须在:<%@ Page%>添加Async="true"


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET中上传下载文件发布时间:2022-07-10
下一篇:
ASP.NET MVC Framework与WCSF中MVP模式之小小比较发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap