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

yizhihongxing

下面我将详细讲解如何使用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中,事件驱动编程是非常常见的。传统的事件模型包含了标准事件(如:click、focus等),当这些事件发生时会触发相应的处理函数。除了标准事件外,还存在一种类型的事件,即自定义事件。自定义事件是由开发者定义的事件,可以手动派发和监听。自定义事件的应用场景非常…

    JavaScript 2023年6月10日
    00
  • JavaScript 申明函数的三种方法 每个函数就是一个对象(一)

    根据你的要求,我来详细讲解一下“JavaScript 申明函数的三种方法 每个函数就是一个对象(一)”的完整攻略。 什么是函数? 在JavaScript中,函数是一种可重用的代码块,可以接收输入信息并返回输出。我们可以使用函数来封装一些代码,然后在需要的时候调用它。 申明函数的三种方法 在JavaScript中,我们可以使用三种不同的方式来申明一个函数。 1…

    JavaScript 2023年5月27日
    00
  • String字符串匹配javascript 正则表达式

    String字符串匹配javascript 正则表达式 什么是正则表达式 正则表达式是一种用来匹配、查找和替换文本的工具,它可以精确匹配一个或多个字符,也可以通过通配符匹配一类字符。在Javascript中,我们可以使用RegExp类来操作正则表达式。 正则表达式的基本语法 在 Javascript 中,正则表达式可以使用字面量或者RegExp类来创建。 使…

    JavaScript 2023年5月28日
    00
  • IE与FF下javascript获取网页及窗口大小的区别详解

    标题 概述 在不同的浏览器中,JavaScript获取网页及窗口大小的方法是不同的。本文将详细讲解在IE和FF浏览器中如何获取网页及窗口大小的区别,并提供使用示例。 获取网页大小 IE浏览器 IE浏览器中获取网页大小可以使用document.documentElement.offsetHeight和document.documentElement.offse…

    JavaScript 2023年6月11日
    00
  • 详解js实时获取并显示当前时间的方法

    当我们开发网页时,有时需要在页面上显示当前的时间。下面是使用JavaScript实时获取并显示当前时间的三种方法。 方法1:使用setInterval()函数 setInterval()函数可以每隔一定时间间隔执行一次function中的代码。我们可以使用这个函数每秒钟更新时间。 <!DOCTYPE html> <html> <…

    JavaScript 2023年5月27日
    00
  • 在HTML代码中使用JavaScript代码的例子

    在HTML代码中使用JavaScript代码是一种常见的前端编程技巧,可以为网页添加各种交互和动态效果。下面是两个使用JavaScript代码的例子,分别展示在HTML中如何使用内联JavaScript代码和外部JavaScript文件。 内联JavaScript代码 内联JavaScript代码直接在HTML元素的代码里嵌入JavaScript代码,可以实…

    JavaScript 2023年5月18日
    00
  • 基于JavaScript获取url参数2种方法

    当开发 web 应用时,我们经常需要从 URL 中获取参数。JavaScript 是一种方便快捷、实用的语言,而获取 URL 参数是 JavaScript 开发中必须面对的一个问题。本文将详细介绍两种基于 JavaScript 获取 URL 参数的方法,并提供具体的示例说明。 方法1:使用正则表达式 要从 URL 中获取参数,我们可以使用 JavaScrip…

    JavaScript 2023年6月11日
    00
  • 原生js实现日期计算器功能

    非常感谢您对“原生js实现日期计算器功能”的关注。下面是我对这个话题的详细讲解,希望能够帮助到您。 什么是日期计算器功能? 日期计算器功能指的是在网页上实现日期的计算,如计算两个日期之间相差的天数、周数、月数、年数等等。这个功能在实际的项目中很常见,比如生日计算器、工作日计算器等等。 使用JavaScript实现日期计算器功能 原生JavaScript能够轻…

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