asp.net发送邮件示例分享


在ASP.NET中,发送邮件通常可以通过`System.Net.Mail`命名空间下的类来实现。下面是一个简单的示例,展示了如何在ASP.NET应用程序中发送一封电子邮件。

首先,确保你的项目中已经引用了`System.Net.Mail`命名空间。如果你是在.NET Core或.NET 5/6/7等较新版本中工作,可能需要通过NuGet安装`System.Net.Mail`包,或者更推荐使用`MailKit`或`MimeKit`等更现代的库,但这里为了简洁性,我将使用`System.Net.Mail`。


using System.Net;
using System.Net.Mail;

public class EmailSender
{
    // 发送邮件的方法
    public void SendEmail(string from, string to, string subject, string body)
    {
        // 创建邮件消息
        MailMessage mail = new MailMessage();
        mail.From = new MailAddress(from); // 发件人地址
        mail.To.Add(to); // 收件人地址,可以添加多个
        mail.Subject = subject; // 邮件主题
        mail.Body = body; // 邮件正文
        mail.IsBodyHtml = true; // 设置为HTML正文(如果需要的话)

        // 设置SMTP服务器信息
        SmtpClient smtp = new SmtpClient("smtp.example.com", 587); // SMTP服务器地址和端口
        smtp.Credentials = new NetworkCredential("your-email@example.com", "your-password"); // 发件人邮箱账号和密码
        smtp.EnableSsl = true; // 如果SMTP服务器要求SSL,则设置为true

        try
        {
            // 发送邮件
            smtp.Send(mail);
            Console.WriteLine("邮件发送成功!");
        }
        catch (Exception ex)
        {
            Console.WriteLine("邮件发送失败:" + ex.Message);
        }
    }
}

// 使用示例
// 假设这是在你的某个方法或函数中
// EmailSender sender = new EmailSender();
// sender.SendEmail("from@example.com", "to@example.com", "测试邮件", "<h1>这是邮件正文</h1>");

**注意**:

- 请将`smtp.example.com`、`587`、`your-email@example.com`和`your-password`替换为你的SMTP服务器地址、端口、你的邮箱账号和密码。

- 邮件发送的成功与否还受到SMTP服务器设置(如是否允许匿名发送、是否需要SSL/TLS等)的影响。

- 示例中的`IsBodyHtml`属性设置为`true`,表示邮件正文是HTML格式的。如果你不需要HTML格式的正文,可以将其设置为`false`,并相应地调整`body`字符串的内容。

- 由于安全和隐私的原因,直接在代码中硬编码邮箱账号和密码通常不是最佳实践。考虑使用更安全的方法来管理这些敏感信息,如环境变量、配置文件或密钥管理服务。