一、邮件发送的基本过程与概念
1、邮件服务器 :类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中
2、电子邮箱 :用户在邮件服务器上申请的一个账户
from:xxx@xx.com ----发件人
To:xxx@xx.com ----收件人
subject:hello ----主题
body: 欢迎来到小滴课堂 -----内容体
二、邮件传输协议
1、SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则
2、POP3协议:全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信 规则
3、IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则
三、代码实现
import smtplib from email.mime.text import MIMEText class SendEmail: def __init__(self, mail_host): self.mail_host = mail_host def send(self, title, content, sender, pwd, receivers): message = MIMEText(content, "html", "utf-8") message["From"] = "{}".format(sender) message["To"] = ",".join(receivers) message["Subject"] = title try: smtpObj = smtplib.SMTP_SSL(self.mail_host, 465) # 启用ssl发信,端口一般是465 smtpObj.login(sender, pwd) # 登录 smtpObj.sendmail(sender, receivers, message.as_string()) print("发送成功") except Exception as e: print(e) if __name__ == '__main__': mail = SendEmail("smtp.163.com") sender = "XXX@163.com" auth_code = "123456" receivers = ["111111@qq.com", "XXX@163.com"] title = "测试邮件发送" content = """ 测试邮件发送 <a href="https://www.baidu.com">查看更多新闻</a> """ mail.send(title, content, sender, pwd, receivers)