c#利用system.net发送html格式邮件


在C#中,你可以使用`System.Net.Mail`命名空间来发送HTML格式的邮件。以下是一个简单的示例,展示了如何使用`MailMessage`类和`SmtpClient`类来发送HTML格式的邮件。


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

class Program
{
    static void Main()
    {
        // 设置SMTP服务器信息
        string smtpHost = "smtp.example.com"; // 请替换为你的SMTP服务器地址
        int smtpPort = 587; // SMTP服务器端口,对于Gmail等通常是587或465(SSL)
        string smtpUser = "your-email@example.com"; // 你的邮箱地址
        string smtpPass = "your-password"; // 你的邮箱密码或应用专用密码

        // 创建邮件对象
        MailMessage mail = new MailMessage();
        mail.From = new MailAddress(smtpUser);
        mail.To.Add("recipient@example.com"); // 收件人邮箱
        mail.Subject = "HTML邮件示例";
        mail.IsBodyHtml = true; // 设置为HTML格式

        // 设置邮件正文为HTML
        string htmlBody = @"<h1>Hello, World!</h1>
                            <p>这是一个HTML格式的邮件。</p>";
        mail.Body = htmlBody;

        // 创建SMTP客户端
        SmtpClient smtp = new SmtpClient(smtpHost, smtpPort);
        smtp.Credentials = new NetworkCredential(smtpUser, smtpPass);
        smtp.EnableSsl = true; // 如果SMTP服务器要求SSL,则设置为true

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

请注意,你需要将`smtpHost`、`smtpUser`、`smtpPass`和`mail.To.Add`中的地址替换为你自己的SMTP服务器信息和收件人地址。如果你的SMTP服务器要求SSL连接,请确保`smtp.EnableSsl`被设置为`true`。

此外,为了安全起见,强烈建议不要直接在代码中硬编码邮箱密码。考虑使用环境变量、配置文件或密钥管理服务来管理敏感信息。