目录
需要开通smtp功能
这里举例子使用的163的邮箱,每个邮箱都是一样的,发件邮箱设置即可
脚本
# -*- coding:utf-8 -*-
"""
自动发送邮件
"""
import os
import smtplib
from email.message import EmailMessage
from email.header import Header
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def send_163_email(remail, rsubject, rcontent):
# email = EmailMessage()
email = MIMEMultipart('related')
# 发件人邮箱
email['From'] = '发件人--需要自己修改为自己的数据'
# 收件人邮箱
email['To'] = remail
# 主题
email['Subject'] = Header(rsubject, 'utf-8')
# 内容
message_text = MIMEText(rcontent, "plain", "utf-8")
email.attach(message_text)
# 图片附件
image_data = open(r'D:\mycode\gitpull\playwright_study\nomalstudy\xiaomuchen.pig', 'rb')
message_image = MIMEImage(image_data.read())
message_image['Content-Type'] = 'attachment/octet-stream'
message_image["Content-Disposition"] = 'attachment; filename="limuchen.pig"'
image_data.close()
email.attach(message_image)
# 附件
atta = MIMEText(open(r'D:\mycode\gitpull\playwright_study\nomalstudy\场景计划.xlsx', 'rb').read(), 'base64', 'utf-8')
atta['Content-Type'] = 'attachment/octet-stream'
# 中文名字的附件
atta.add_header("Content-Disposition", "attachment", filename=("gbk", "", "5.3版本接口详细测试结果.xlsx"))
# 英文名附件
# atta["Content-Disposition"] = 'attachment; filename="smaple.xlsx"'
email.attach(atta)
with smtplib.SMTP(host='smtp.163.com', port=25)as smtp: #这里我用了163的邮箱
smtp.ehlo()
smtp.starttls()
# 授权码登录
smtp.login("*******@163.com---你能发邮件开通smtp功能的邮箱", "授权码---你自己的授权码")
# 两个发送方法都可
# smtp.send_message(email)
smtp.sendmail("发件人", remail, email.as_string())
print("邮件发送成功")
if __name__ == '__main__':
send_163_email('收件人邮箱', 'Python邮件测试', '你好,这是一个测试邮件!')