ASP.Net: EshineASPNet教程-根据模板发送邮件

完整教程链接:ASP.Net: EshineASPNet-基于ASP.Net敏捷开发开源框架

发送通知邮件,激活账户或者修改密码邮件是很常用的功能,这里分享一种实现方式,我们先把要发送的邮件内容保存成模板,特别的,我们可以采用Html的格式来制作模板,并保存成Html文件,这样可以很方便的查看显示效果,发送的时候只需要做相应的文本替换即可。
如上面的图所展示的一封邮件,其实就是一个html文本,完整代码就不贴出来了,可以参考EshineASPNet\Web\email_changeemail.htm,这里展示其中和C#代码相关的部分。

            <strong><span class="style3">尊敬的 <%customname%> 先生/女士,</span></strong>
            <br />
            <br />
            <span class="style3">请点击<a href="<%newemaillink%>"><%newemaillink%></a>激活新邮箱账号。

如代码展示,这里我们设置了<%customname%>和<%newemaillink%>两个代文本,后续我们会用实际的客户姓名和激活链接来取代这2个地方。

    private void SendEmail(string strName, string strne)
    {
        string Subject = "修改邮箱";

        string strPath = System.Web.HttpContext.Current.Server.MapPath("~/email_changeemail.htm");
        StreamReader sr = new StreamReader(strPath, System.Text.Encoding.Default);
        StringBuilder body = new StringBuilder();
        body.Append(sr.ReadToEnd());
        sr.Close();

        body = body.Replace("<%customname%>", strName);
        body = body.Replace("<%newemaillink%>", strne);
        body = body.Replace("<%date%>", DateTime.Now.ToShortDateString());

        pc.SendsettingEMail(this.TextBox4.Text, Subject, body.ToString().Trim());
    }


    //Web.config文件中增加如下配置节:
    // <system.net>
    //    <!--如果是第三方smtp服务器,需要指定userName 和 password,并根据host指定发件人邮件地址from
    //        测试发现from值必须是userName值加上指定的smpt服务器才行,而且是必须指定的
    //        如果是本机smtp服务器,只需指定defaultCredentials="true"即可-->
    //    <mailSettings>
    //      <smtp deliveryMethod="Network" from ="youremail@hotmail.com" >
    //        <network host="smtp.126.com" port="25" userName="youremail" password="111111/>
    //      </smtp>
    //    </mailSettings>
    //  </system.net>
    public void SendsettingEMail(string strto, string strSubject, string strBody)
    {
        using (MailMessage message = new MailMessage())
        {
            message.To.Add(new MailAddress(strto)); //收件人邮箱
            message.Subject = strSubject;//邮件主题
            message.Body = strBody;  //邮件正文
            message.IsBodyHtml = true;
            message.SubjectEncoding = System.Text.Encoding.UTF8;
            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.HeadersEncoding = System.Text.Encoding.UTF8;

            SmtpClient mailClient = new SmtpClient();
            mailClient.Send(message);
        }
    }

上面这段代码就是根据模板来发送邮件的代码,我们把刚刚需要取代文本的两个值作为参数传进来。首先读取邮件模板的html文件,然后用参数做字符串替换,最后就可以发送邮件了。
发送邮件在SendsettingEMail函数里面,这个函数有详细的说明,在使用这个方法前首先我们需要在Web.config文件中增加mailSettings块,在里面定义我们发送邮件的smtp信息以及账户名密码,然后在代码引用System.Net.Mail,并使用SmtpClient来发送邮件,这样就可以发送了。
大家可以把激活账户、修改密码等保存成一个个单独的Html模板,在需要的地方应用不同的模板即可。

本教程代码参考
EshineASPNet\Web\safeemail.aspx
EshineASPNet\Web\App_Code\PublicClass.cs

完整教程链接:ASP.Net: EshineASPNet-基于ASP.Net敏捷开发开源框架

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值