发送Email:SMTP / MailMessage / SmtpClient

更多
2021年01月03日 21点33分 作者:叶飞 修改

发送Email

Email并不能在用户之间直接传递,而是依赖于邮件的:

  • 发送服务器(如下图:smtp.163.com)
  • 接收服务器(如下图:pop.qq.com)

  1. 发送方(sender)将email推送给邮件发送服务器。这一过程可以由用户登录邮箱网站完成,或使用其他邮箱软件(如outlook)推送
  2. 163.com按邮件收件人地址将email推送到qq.com服务器
  3. 收件方(receiver)从服务器拉取自己的email

上述3个过程,1和2都是推送,使用SMTP(Simple Mail Transfer Protocol)协议;3是拉取,使用的是POP3协议。

我们开发只关注第1个阶段。.NET为我们提供了现成的类库:

首先,引入命名空间:

using System.Net.Mail; //注意不要引用成System.Web.Mail

然后,用一个MailMessage对象配置Email本身的相关信息:

    MailMessage mail = new MailMessage
    {
        From = new MailAddress("feige_20200214@163.com"),
        Subject = "激活Email",
        Body = $"感谢你的注册…… 你的注册码是:{code}"
        IsBodyHtml = true  //最终呈现样式由收件服务器决定
    };
    mail.To.Add(model.Email);
接下来,配置SMTP服务器
    SmtpClient client = new SmtpClient
    {
        Host = "smtp.163.com",
        Port = 25,
        Credentials = new NetworkCredential("feige_20200214", "yz17bang"),
        EnableSsl = false
    };
    client.Send(mail);

注意

另:上述163邮箱的用户名和密码真实可用,^_^,yz17bang为“客户端授权密码”,如果要从网易邮箱网页登录,需使用登录密码:yuanzhan17bang




Email 原理 发送
赞: 0 踩: 0

打赏
已收到打赏的 帮帮币

你的 打赏 非常重要!
为了保证文章的质量,每一篇文章的发布,都已经消耗了作者 1 枚 帮帮币
没有“帮帮币”,作者无法发布新的文章。

全系列阅读
评论 / 0

后台开发


ADO和EF

如何通过C#进行数据库的读取,包含ADO.NET和Entity Framework相关知识……

ASP.NET框架

综合之前所学,连接前端和数据库,包括RazorPage、MVC和其他(如WebForm/WebApi等)技术……

RazorPages(Core)

微软推荐的、最新的、基于Razor页面和.NET core的新一代Web项目开发技术,包括Razor Tag Helper、Model绑定和Validation、Session/Cookie、内置依赖注入等……

MVC(Framework)

过去两年间最流行的、基于.NET Framework和MVC模式的ASP.NET MVC框架,主要用于讲解安全、性能、架构和各种实战功能演示……

C#语法

从入门的变量赋值、分支循环、到面向对象,以及更先进的语言特性,如:泛型、Lambda、Linq、异步方法等…………

Java语法

面向过程的变量赋值、分支循环和函数封装;面向对象的封装、继承和多态;以及更高阶的常用类库(集合/IO/多线程……)、lambda等

Java Web开发

SpringMVC

分层架构和综合实战

全部
关键字



帮助

反馈