Python 3.10
该代码复制可用(需修改sender_password)
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.utils import formataddr
receivers = ['123456@qq.com', '123456@foxmail.com'] # 接收者邮箱
class EmailConfig:
"""邮箱的一些配置信息"""
smtp_url = 'smtp.163.com' # smtp地址
sender = 'druid137@163.com' # 发送者邮箱
sender_name = 'druid' # 发送者名称邮箱
sender_password = 'CTYRHHX123456' # 发送者密码(邮箱的授权码,非登录密码)
def simple_send_email(receiver, subject, body):
"""
简单的邮件发送
:param receiver: 接收者邮箱
:param subject: 邮件主题
:param body: 邮件内容
:return: none
"""
try:
message = MIMEText(body, 'plain', 'utf-8') # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message['From'] = formataddr([EmailConfig.sender_name, EmailConfig.sender]) # 发送者名字 发送者邮箱
message['To'] = receiver # 接收者, 接收者邮箱地址
message['Subject'] = Header(subject, 'utf-8')
# smtpObj = smtplib.SMTP(smtp_url)
smtpObj = smtplib.SMTP_SSL(EmailConfig.smtp_url)
smtpObj.login(EmailConfig.sender, EmailConfig.sender_password)
smtpObj.sendmail(EmailConfig.sender, receiver, message.as_string())
smtpObj.quit()
print("邮件发送成功")
except smtplib.SMTPException as ex:
print(ex)
print("Error: 无法发送邮件")
def simple_batch_send_email(receivers, subject, body):
"""
批量简单的邮件发送
:param receivers: 接收站邮箱数组
:param subject: 主题
:param body: 内容
:return: none
"""
try:
message = MIMEText(body, 'plain', 'utf-8') # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message['From'] = formataddr([EmailConfig.sender_name, EmailConfig.sender]) # 发送者名字 发送者邮箱
message['To'] = '接收者' # 接收者, 接收者邮箱地址
message['Subject'] = Header(subject, 'utf-8')
# smtpObj = smtplib.SMTP(smtp_url)
smtpObj = smtplib.SMTP_SSL(EmailConfig.smtp_url)
smtpObj.login(EmailConfig.sender, EmailConfig.sender_password)
smtpObj.sendmail(EmailConfig.sender, receivers, message.as_string())
smtpObj.quit()
print("邮件发送成功")
except smtplib.SMTPException as ex:
print(ex)
print("Error: 无法发送邮件")
if __name__ == '__main__':
print("start send email")
# simple_batch_send_email(receivers, 'subject', 'hello email')
simple_send_email(receivers[0], 'simple_send_email', 'hello email simple_send_email')