使用 System.Net.Mail.MailMessage 发送电子邮件

2023-11-11

从.NET 2.0 开始,引入了一个新的类,System.Net.Mail.MailMessage。该类用来取代 .NET 1.1 时代的 System.Web.Mail.MailMessage 类。

System.Net.Mail.MailMessage 类用于指定一个邮件,另外一个类 System.Net.Mail.SmtpClient 则用来设置 SMTP,然后发送邮件。由于目前 SMTP 都需要进行身份验证,有的还需要 SSL(比如GMail),所以设置的属性稍微多一些。代码片断如下:

using System.Net.Mail;
...
MailMessage mailMsg = new MailMessage();
mailMsg.From = new MailAddress("你的email地址");
mailMsg.To.Add("接收人1的email地址");
mailMsg.To.Add("接收人2的email地址");
mailMsg.Subject = "邮件主题";
mailMsg.Body = "邮件主体内容";
mailMsg.BodyEncoding = Encoding.UTF8;
mailMsg.IsBodyHtml = false;
mailMsg.Priority = MailPriority.High;

SmtpClient smtp = new SmtpClient();
// 提供身份验证的用户名和密码
// 网易邮件用户可能为:username password
// Gmail 用户可能为:username@gmail.com password
smtp.Credentials = new NetworkCredential("用户名", "密码");
smtp.Port = 25; // Gmail 使用 465 和 587 端口
smtp.Host = "SMTP 服务器地址"; // 如 smtp.163.com, smtp.gmail.com
smtp.EnableSsl = false; // 如果使用GMail,则需要设置为true
smtp.SendCompleted += new SendCompletedEventHandler(SendMailCompleted);
try
{
    smtp.SendAsync(mailMsg, mailMsg);
}
catch (SmtpException ex)
{
    Console.WriteLine(ex.ToString());
}
...

void SendMailCompleted(object sender, AsyncCompletedEventArgs e)
{
    MailMessage mailMsg = (MailMessage)e.UserState;
    string subject = mailMsg.Subject;
    if (e.Cancelled) // 邮件被取消
    {
        Console.WriteLine(subject + " 被取消。");
    }
    if (e.Error != null)
    {
        Console.WriteLine("错误:" + e.Error.ToString());
    }
    else
    {
        Console.WriteLine("发送完成。");
    }
}

 

 

 

参考:

MailMessage 类

http://msdn.microsoft.com/zh-cn/library/system.net.mail.mailmessage(VS.80).aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 System.Net.Mail.MailMessage 发送电子邮件 的相关文章

随机推荐

  • QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object 它把绝大多数Qt提供的数据类型都封装起来 起到一个数据类型 擦除 的作用 比如我们的 table单元格可以是string 也可以是int 也可以是一个颜色值 那么这么多类型怎么返回呢 于是 Qt提
  • 性能测试连载 (10)-数据错误率分析

    概述 性能测试脚本跑完了之后 我们除了要收集瓶颈数据 还有分析错误数据 通常一套脚本跑完 错误类型不止一种 但是jmeter只会在聚合报告里面给出一个总体的错误率 错误率 jmeter里的错误率是如何统计的 在返回的数据里面 只要succe
  • Maven项目中出现红色波浪线的解决过程

    一 问题分类 对于Maven项目出现红色波浪线可以首先对报错情况进行分析 我遇到的两种表现形式 还有其他的形式 请多多指教 形式一 所用文件均出现红色波浪线 此问题可能是配置问题 形式二 maven项目 Plugins Dependenci
  • Element-Ui

    安装环境搭建 Element Ul是饿了么前端团队推出的一款基于Vue js 2 0 的桌面端UI框架 一套为开发者 设计师和产品经理准备的基于 Vue 2 0 的桌面端组件库 手机端有对应框架是Mint UI 中文文档 http elem
  • 蓝桥杯 奇数倍数

    蓝桥杯 奇数倍数 题目 请你找到最小的整数 X 同时满足 1 X 是 2019 的整倍数 2 X 的每一位数字都是奇数 思路 1 先找2019倍数 2 判断它的每一位是否是奇数 Java代码 public class 奇数倍数 public
  • 2022跨年烟花代码(一)Canvas绘制3D烟花动画特效

    Canvas绘制3D烟花动画特效 html代码
  • Knife4j+gateway动态路由聚合微服务API

    概述 knife4j的聚合API 其实官网有现成的例子 但包括其他能搜索到的资料都是基于静态网关的配置 我们现有的都是结合nacos实现动态网关配置 基于此留下这篇完整的教程文档 说明 本文假定你有一定的springcloud等相关知识 如
  • 树莓派安装配置syncthing

    下载 从这里下载软件 下载后解压 把二进制文件放到 usr local bin 目录 在命令行输入syncthing version命令 能打印出版本即可 自动启动 Unit Description Syncthing Open Sourc
  • struts2验证框架的两种方式

    第一种 在action同目录下建立 action validation xml
  • 关于JavaScript的浅拷贝和深拷贝

    关于JavaScript的浅拷贝和深拷贝 在 JS 中有一些基本类型像是Number String Boolean 而对象就是像这样的东西 name Larry skill Node js 对象跟基本类型最大的不同就在于他们的传值方式 基本
  • logging的使用python3

    以时间命名输出日志 def init logging t str time strftime Y m d H M time localtime filename log s txt t logging basicConfig level l
  • 刷题 3.10

    目录 1 约瑟夫环 蓝桥231 2 排它平方数 蓝桥712 3 买不到的数目 蓝桥213 思维题 思路 因为有解 两个数一定互质 不能拼成的最大数是xy x y 4 回文日期 1 约瑟夫环 蓝桥231 题目描述 n 个人的编号是 1 n 如
  • handsontable使用及遇到的坑--公式计算(思路)

    公式 公式的计算可使用堆栈的思想将运算符后置 如 C1 A1 A2 5 B1可以变换成 A1 A2 5 B1 计算过程为 假设A1 1 A2 2 B1 3 C1 A1 A2 5 B1 A1 A2 5 B1 1 2 5 3 3 5 3 15
  • 腾讯三面(hr面)之轻松过关

    腾讯二面之细节大曝光中最后提到 22号晚上11 00先后分别收到邮件 短信与电话通知 腾讯邀请你于4月23号16点到珞珈山国际酒店3楼2号会议室参加软件开发类面试 请携带简历提前5分钟到达 腾讯科技 23号上午 同样在旅馆查询资料 虽然很多
  • 【华为提前批】笔试 测评 面试 全流程(结构与材料工程师)

    目录 提前批流程 笔试 性格测试 专业面试1 2 主管面 终面 最后 祝各位旗开得胜 提前批流程 一般综合测评会在笔试之后发放 可选择之后再做 流程里面是安排在两轮技术面之后的 笔试 7 12 性格测试 7 14 专业面试1 7 24 专业
  • flutter 路由插件fluro配置及其使用

    flutter 路由插件fluro配置及其使用 pubspec yaml 引入插件 dependencies flutter sdk flutter fluro 1 6 3 1 首先创建一个router handler dart文件 定义路
  • 数据挖掘与机器学习——数据挖掘概述

    挖掘是从大量的 不完全的 有噪声的 模糊的 随机的应用数据中 提取潜在且有用的信息的过程 分析分析处理 On Line Analytical Processing OLAP 数据分析过程 确定知识发现的目标 确定知识发现的目的 数据采集 数
  • Segmentation简记-Joint shape learning and segmentation for medical images

    Segmentation简记 Joint shape learning and segmentation for medical images using a minimalistic deep network 创新点 1 In this
  • react中dispatch_在react中class和function组件调用dispatch的方式

    copy党的疑问 function Checklist dispatch list dataSource loading total page current function editHandler id values dispatch
  • 使用 System.Net.Mail.MailMessage 发送电子邮件

    从 NET 2 0 开始 引入了一个新的类 System Net Mail MailMessage 该类用来取代 NET 1 1 时代的 System Web Mail MailMessage 类 System Net Mail MailM