Python实现邮件发送
一、邮件发送的基本过程与概念
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 = """
测试邮件发送
查看更多新闻
"""
mail.send(title, content, sender, pwd, receivers)