美文网首页
【python】126邮箱自动发送邮件(带附件)

【python】126邮箱自动发送邮件(带附件)

作者: 玉米fight | 来源:发表于2020-05-06 15:06 被阅读0次

前置步骤:
1、登录126邮箱,开启POP3/SMTP服务


image.png

2、新增授权码(供登录使用)


image.png
3、smtpObj.login登录邮箱(邮箱在本地无须次步骤)
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 第三方 SMTP 服务
mail_host = 'smtp.126.com'  # 设置服务器
mail_username = 'b***y@126.com'  # 用户名
mail_auth_password = "x"  # 授权密码
sender = 'b***y@126.com'
# receivers = '11@qq.com'         # 一个收件人
receivers = '11@qq.com,22@qq.com'  # 多个收件人

mail_msg = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.runoob.com">这是一个链接</a></p>
"""
message = MIMEMultipart()
message['From'] = sender
message['To'] = receivers
message['Subject'] = "这里是邮件主题"
message.attach(MIMEText(mail_msg, 'html', 'utf-8'))

att1 = MIMEText(open('1.txt', 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
# 这里的filename可以任意写,写什么名字,邮件中显示什么名字
att1["Content-Disposition"] = 'attachment; filename="1.txt"'
message.attach(att1)

try:
    smtpObj = smtplib.SMTP(mail_host, 25)  # 生成smtpObj对象,使用非SSL协议端口号25
    smtpObj.login(mail_username, mail_auth_password)  # 登录邮箱
    # smtpObj.sendmail(sender, receivers, message.as_string())          # 发送给一人
    smtpObj.sendmail(sender, receivers.split(','), message.as_string())  # 发送给多人
    print("邮件发送成功")
except smtplib.SMTPException:
    print("Error: 无法发送邮件")


最终效果如下:


image.png

相关文章

网友评论

      本文标题:【python】126邮箱自动发送邮件(带附件)

      本文链接:https://www.haomeiwen.com/subject/itcevhtx.html