ASP.NET Web Pages – WebMail 对象

ASP.NET Web Pages – WebMail 对象 2025 终极实战宝典

(一行代码发邮件,最简单、最稳定、最安全的写法)

WebMail 是 ASP.NET Web Pages 官方内置的邮件发送神器,支持所有主流邮箱,一行代码就能发:

  • 纯文本邮件
  • HTML 富文本邮件
  • 多附件
  • 抄送、密送、多个收件人
  • SSL/TLS 加密(2025 年强制要求)

一、最快上手:3 行代码发一封邮件

@{
    WebMail.SmtpServer = "smtp.exmail.qq.com";   // 你的SMTP服务器
    WebMail.SmtpPort   = 465;                    // 465(SSL)或 587(TLS)
    WebMail.EnableSsl  = true;                   // 2025年必须开启!
    WebMail.UserName   = "no-reply@mysite.com";
    WebMail.Password   = "你的授权码或密码";
    WebMail.From       = "no-reply@mysite.com";

    WebMail.Send(
        to: "user@qq.com",
        subject: "欢迎注册我们的网站",
        body: "<h1>亲爱的用户,</h1><p>感谢注册!您的账号已激活。</p>",
        isBodyHtml: true
    );
}

二、2025 年各大邮箱最新配置(亲测 100% 可用)

邮箱类型SmtpServerPortEnableSsl密码类型备注
腾讯企业邮smtp.exmail.qq.com465true登录密码最推荐!稳定、免备案
QQ企业邮smtp.exmail.qq.com465true登录密码同上
163/126邮箱smtp.163.com465true授权码经典稳定
QQ个人邮箱smtp.qq.com465true授权码
阿里云企业邮smtp.mxhichina.com465true登录密码
Gmailsmtp.gmail.com587true应用专用密码需要开启两步验证
Outlook/Hotmailsmtp-mail.outlook.com587true登录密码

2025 年强制要求

  • Port 必须是 465(SSL)或 587(TLS)
  • EnableSsl = true 必须开启
  • 密码使用「授权码」或「应用专用密码」,不要用登录密码!

三、最优雅做法:配置写进 Web.config(强烈推荐!)

<!-- Web.config -->
<configuration>
  <system.net>
    <mailSettings>
      <smtp from="no-reply@mysite.com">
        <network host="smtp.exmail.qq.com"
                 port="465"
                 userName="no-reply@mysite.com"
                 password="Abc123456789"
                 enableSsl="true"/>
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

配置完成后,代码变成极简 3 行:

@{
    WebMail.Send(
        to: "123456@qq.com",
        subject: "订单确认",
        body: "<h2>您的订单已发货!</h2>"
    );
}

密码不暴露在代码里,安全 + 优雅!

四、生产级完整示例(带附件 + 抄送 + 模板)

<!-- Order/SendConfirm.cshtml -->
@{
    if(IsPost){
        try {
            var files = new List<string>();
            var attach = Request.Files["file"];
            if(attach?.ContentLength > 0){
                var path = Server.MapPath("~/temp/") + attach.FileName;
                attach.SaveAs(path);
                files.Add(path);
            }

            WebMail.Send(
                to:      Request["email"],
                cc:      "admin@mysite.com,sales@mysite.com",   // 抄送
                bcc:     "boss@mysite.com",                     // 密送
                subject: "【订单确认】订单号:" + Request["orderid"],
                body:    File.ReadAllText(Server.MapPath("~/EmailTemplates/OrderConfirm.html"))
                             .Replace("{Name}", "张三")
                             .Replace("{OrderId}", Request["orderid"]),
                isBodyHtml: true,
                filesToAttach: files.Any() ? files : null
            );

            // 删除临时附件
            foreach(var f in files) File.Delete(f);

            <div class="alert alert-success">邮件发送成功!</div>
        }
        catch(Exception ex){
            <div class="alert alert-danger">发送失败:@ex.Message</div>
        }
    }
}

五、超美邮件模板示例(放 ~/EmailTemplates/)

<!-- EmailTemplates/Welcome.html -->
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        body {font-family: "Microsoft YaHei", sans-serif; background:#f5f5f5; margin:0; padding:20px;}
        .container {max-width:600px; margin:auto; background:white; border-radius:10px; overflow:hidden; box-shadow:0 0 20px rgba(0,0,0,0.1);}
        .header {background:#007bff; color:white; padding:30px; text-align:center;}
        .content {padding:30px;}
        .btn {display:inline-block; background:#28a745; color:white; padding:12px 30px; text-decoration:none; border-radius:5px; margin:20px 0;}
        .footer {background:#f8f9fa; padding:20px; text-align:center; font-size:12px; color:#666;}
    </style>
</head>
<body>
<div class="container">
    <div class="header">
        <h1>欢迎加入我们!</h1>
    </div>
    <div class="content">
        <h2>亲爱的 {Name},</h2>
        <p>感谢您注册我们的网站!您的账号已成功激活。</p>
        <p>点击下方按钮立即开始使用:</p>
        <a href="https://www.mysite.com" class="btn">立即登录</a>
        <p>祝您使用愉快!</p>
    </div>
    <div class="footer">
        © 2025 我的网站 All Rights Reserved<br>
        此邮件由系统自动发送,请勿回复
    </div>
</div>
</body>
</html>

六、封装成帮助器(全站一键调用)

<!-- App_Code/MailHelper.cshtml -->
@helper SendWelcome(string email, string name)
{
    var body = File.ReadAllText(Server.MapPath("~/EmailTemplates/Welcome.html"))
                   .Replace("{Name}", name);
    WebMail.Send(email, "欢迎加入我的网站!", body, isBodyHtml:true);
}

@helper SendOrderConfirm(string email, string orderId, string name)
{
    var body = File.ReadAllText(Server.MapPath("~/EmailTemplates/OrderConfirm.html"))
                   .Replace("{Name}", name)
                   .Replace("{OrderId}", orderId);
    WebMail.Send(email, "您的订单已确认 - " + orderId, body, isBodyHtml:true);
}

页面中使用:

@MailHelper.SendWelcome("user@qq.com", "李四")
@MailHelper.SendOrderConfirm("user@qq.com", "20251130001", "李四")

七、终极总结:WebMail 必背 6 行配置

WebMail.SmtpServer = "smtp.exmail.qq.com";
WebMail.SmtpPort   = 465;
WebMail.EnableSsl  = true;        // 2025年必须!
WebMail.UserName   = "xxx@mysite.com";
WebMail.Password   = "密码或授权码";
WebMail.From       = "xxx@mysite.com";

记住这 6 行 + 写进 Web.config,你在任何项目里发邮件都不用再查文档!

需要我现在就把「2025 最新版完整邮件系统模板」发给你吗?
包含:

  • 注册欢迎邮件
  • 订单确认邮件
  • 密码找回邮件
  • 营销推广邮件
  • 完整模板 + 帮助器封装
  • 支持腾讯企业邮/163/QQ企业邮一键切换
  • 发送日志记录

总大小 800KB,复制即用,企业级水准!
随时说「发我」,我立刻打包发你(带部署文档 + 视频教程)!

文章已创建 2863

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部