C#使用MailAddress类发送html格式邮件的实例代码

下面我将详细讲解如何使用C#的MailAddress类发送HTML格式邮件。

1. 准备工作

在开始之前,你需要安装SMTP的环境,同时确保你的邮箱账号的SMTP邮件发送权限已经开启。

2. 添加引用

在C#项目中引用System.Net.Mail, System.Net和System.Text命名空间

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

3. 发送HTML格式邮件的代码

创建一个MailMessage实例,并在其中设置邮件标题和内容,包括设置HTML格式和编码方式等。

MailMessage mail = new MailMessage();
mail.From = new MailAddress("发送者邮箱");
mail.To.Add("接收者邮箱");
mail.CC.Add("抄送者邮箱");
mail.Subject = "邮件标题";
mail.Body = "<html><body><h1>Hello, World!</h1>This is HTML email!</body></html>";
mail.IsBodyHtml = true; // 设置邮件格式可以是Html
mail.BodyEncoding = Encoding.UTF8; //(可选)设置内容编码方式
mail.SubjectEncoding = Encoding.UTF8; //(可选)设置标题编码方式

4. 连接SMTP服务器并发送邮件

根据SMTP的环境连接SMTP服务并使用SMTP服务发送邮件。

SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.服务商.com";
smtp.Port = 25; // (可选)设置SMTP端口号
smtp.UseDefaultCredentials = false; //是否使用系统默认凭证
smtp.Credentials = new NetworkCredential("发送者地址", "发送者密码");
smtp.EnableSsl = true; //(可选)是否启用SSL
try 
{
    smtp.Send(mail);
    Console.WriteLine("邮件已经发送成功!");
} catch(Exception e) {
    Console.WriteLine("发送邮件时出现了异常,请检查:", e.ToString());
}

示例说明

示例1:发送带附件的HTML邮件

MailMessage mail = new MailMessage();
mail.From = new MailAddress("发送者邮箱");
mail.To.Add("接收者邮箱");
mail.CC.Add("抄送者邮箱");
mail.Subject = "邮件标题";
mail.Body = "<html><body><h1>Hello, World!</h1>This is HTML email!</body></html>";
mail.IsBodyHtml = true; // 设置邮件格式可以是Html
mail.BodyEncoding = Encoding.UTF8; //(可选)设置内容编码方式
mail.SubjectEncoding = Encoding.UTF8; //(可选)设置标题编码方式

Attachment attachment = new Attachment("附件的路径");
mail.Attachments.Add(attachment);

SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.服务商.com";
smtp.Port = 25; // (可选)设置SMTP端口号
smtp.UseDefaultCredentials = false; //是否使用系统默认凭证
smtp.Credentials = new NetworkCredential("发送者地址", "发送者密码");
smtp.EnableSsl = true; //(可选)是否启用SSL
try 
{
    smtp.Send(mail);
    Console.WriteLine("带附件的HTML邮件已经发送成功!");
} catch(Exception e) {
    Console.WriteLine("发送邮件时出现了异常,请检查:", e.ToString());
}

示例2:使用SmtpClient的SendAsync方法发送邮件

MailMessage mail = new MailMessage();
mail.From = new MailAddress("发送者邮箱");
mail.To.Add("接收者邮箱");
mail.CC.Add("抄送者邮箱");
mail.Subject = "邮件标题";
mail.Body = "<html><body><h1>Hello, World!</h1>This is HTML email!</body></html>";
mail.IsBodyHtml = true; // 设置邮件格式可以是Html
mail.BodyEncoding = Encoding.UTF8; //(可选)设置内容编码方式
mail.SubjectEncoding = Encoding.UTF8; //(可选)设置标题编码方式

SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.服务商.com";
smtp.Port = 25; // (可选)设置SMTP端口号
smtp.UseDefaultCredentials = false; //是否使用系统默认凭证
smtp.Credentials = new NetworkCredential("发送者地址", "发送者密码");
smtp.EnableSsl = true; //(可选)是否启用SSL
smtp.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);

try 
{
    // 发送邮件但不影响应用程序的执行,应用程序继续执行后面的代码,直到完成邮件发送或出现异常
    smtp.SendAsync(mail, "");
} catch(Exception e) {
    Console.WriteLine("发送邮件时出现了异常,请检查:", e.ToString());
}

private static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
{
    if (e.Cancelled)
    {
        Console.WriteLine("邮件发送被取消了...");
    }
    if (e.Error != null)
    {
        Console.WriteLine("发送邮件时出现异常:", e.Error.ToString());
    }
    else
    {
        Console.WriteLine("带附件的HTML邮件已经发送成功!");
    }
    //释放资源
    MailMessage mail = e.UserState as MailMessage;
    if (mail != null)
    {
        mail.Dispose();
    }
    SmtpClient client = sender as SmtpClient;
    if (client != null)
    {
        client.Dispose();
    }
}

希望以上例子对你有所帮助。在实际应用中,还需根据自身需求进行调试和改进。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#使用MailAddress类发送html格式邮件的实例代码 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • javascript操作表格

    下面是详细讲解”JavaScript操作表格”的完整攻略。 操作表格的基本方法 1.获取表格的节点 在JavaScript中,我们可以通过以下方式获取HTML中的表格节点: var table = document.getElementsByTagName(‘table’)[0]; //获取HTML中的第一个table标签 上述代码中,我们使用了getEle…

    JavaScript 2023年6月10日
    00
  • JavaScript中关于数组的调用方式

    JavaScript中的数组是一组值的有序集合,可以通过数字索引来访问这些值。在JavaScript中,数组可以通过几种不同的方式来创建和访问。 创建数组 JavaScript中的数组可以通过以下两种方式来创建: 直接使用方括号[]来创建一个空数组,如下所示: const arr1 = []; 使用方括号[]并在其中包含数组元素,如下所示: const ar…

    JavaScript 2023年5月27日
    00
  • 详解微信小程序中var、let、const用法与区别

    详解微信小程序中var、let、const用法与区别 在微信小程序的开发中,我们常常会使用到JS语言中的变量。而在ES6中,我们可以通过var、let、const来声明变量。这三个关键字有什么区别呢?下面就来详细讲解一下。 var var是ES5中定义的声明变量的关键字。它有以下特点: var声明的变量作用域为函数体内,如果不在函数内则为全局变量。 var声…

    JavaScript 2023年6月11日
    00
  • js获取浏览器基本信息大全

    获取浏览器基本信息是前端开发中比较常用的一个需求。通过 JavaScript 可以获取浏览器的类型、版本号、操作系统类型等信息。下面就来详细讲解一下如何获取浏览器基本信息。 获取浏览器类型和版本号 可以使用 navigator.userAgent 获取当前浏览器的 UserAgent 字符串,然后通过正则表达式匹配出浏览器类型和版本号。 // 获取浏览器类型…

    JavaScript 2023年6月11日
    00
  • Java Web实现的基本MVC实例分析

    通过Java Web可以实现基本的MVC(Model-View-Controller)架构。MVC是一种软件设计模式,用于将一个应用程序分成三个核心部分:Model(模型)、View(视图)和Controller(控制器)。MVC架构使应用程序的开发、维护和扩展更加容易。本攻略将详细讲解在Java Web中实现基本MVC的过程,包括创建模型、视图和控制器、实…

    JavaScript 2023年5月28日
    00
  • 浅析JS中对函数function的理解(基础篇)

    浅析JS中对函数function的理解(基础篇) 在JavaScript中,函数是一种可以重复使用的代码块。函数通过指定参数来操作数据,并且返回具有可读性和结构性的结果。下面我们将详细讨论JS中函数的相关概念以及其使用方法。 定义函数 在JS中,我们可以通过如下方式来定义一个函数: function functionName(参数列表) { // 函数体 r…

    JavaScript 2023年5月27日
    00
  • javascript结合fileReader 实现上传图片

    这里是关于JavaScript结合FileReader实现上传图片的完整攻略。 什么是FileReader? FileReader是HTML5中的一个API,用于访问本地文件并将文件内容读取到内存中。它可以读取文本、图像和音视频等资源,并将它们转换为可用的数据URL。 上传图片的基本步骤 要实现上传图片,我们需要先将选择的图片加载到内存中,然后再将它上传到服…

    JavaScript 2023年5月27日
    00
  • js cookie实现记住密码功能

    下面是关于“js cookie实现记住密码功能”的完整攻略。 什么是cookie Cookie 是一种小的文本数据,它通常由一个网站的服务器发送到网站的浏览器之后就被存储在浏览器的本地硬盘上。每当该浏览器向同一网站再次发出请求时,它就会将这些 Cookie 信息发送给该网站的服务器。 如何使用js cookie实现记住密码功能 一般情况下,我们可以通过设置一…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部