不管老方法还是新方法,老类还是新类,新架构还是老架构,融会贯通,温故总能知新!加油!
又来了,旧坑未填,新任务又来。
这次是要写一个定时发送邮件的小功能。更多可见就是邮件每年都会收到发送给你的生日祝福、周年庆时发送给你的书信、最新活动的通知信件…
一、我的环境
- Window10
- IIS 10.0
- Visual Studio 2019(asp.net用4.5的框架)
- SQL Server 2014 Management Studio
二、信箱的设置
邮箱开通SMTP协议(以163作为例子来)
1、开启POP3/SMTP服务
这里就不对IMAP和POP3的区别进行说明了,可以在邮箱点击“了解更多”自己去了解一下。
2、POP3/SMTP服务的知识点补充
- POP3用于接收电子邮件:Post Office Protocol 3,邮局协议的第3个版本
- SMTP用于发送电子邮件:Simple Mail Transfer Protocol,简单邮件传输协议。
SMTP 认证,必须在提供了账户名和密码之后才可以登录 SMTP 服务器,使用户避免受到垃圾邮件的侵扰。
三、程序创建
1、创建控制台应用程序
命名:send_mail
2、System.Net.Mail命名空间的相关类
① MailMessage:
提供属性和方法来创建一个邮件消息对象,即邮件内容。
- From:发送邮件的地址
- To:接收邮件的地址
- Subject:邮件的标题
- Body:邮件正文
- Priority:邮件的优先级(分别为为High,Low,Normal)
- Attachments:电子邮件的数据的附件集合
- Bcc:密送地址
- Cc:抄送地址
- SubjectEncoding:电子邮件的主题内容使用的编码
- IsBodyHtml:邮件正文是否为 Html 格式的值
② Attachment:
邮件附件。
③ SmtpClient:
将电子邮件传输到您指定用于邮件传送的 SMTP 主机。
- DeliveryMethod:指定如何处理待发的电子邮件
- Host:SMTP 事务的主机的名称或 IP 地址
- Port:端口,不填为默认端口
- Timeout:超时时间
- Credentials:设置用于验证发件人身份的凭据
3、相关代码,初阶
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Net;
namespace send_mail
{
class Program
{
static void Main(string[] args)
{
//构建邮件的消息对象,即邮件内容
MailMessage message = new MailMessage();
//From设置电子邮件的发件人地址
message.From = new MailAddress("发件人邮箱@163.com");
//TO获取电子邮件收件人的地址,Ad