免费的邮箱smtp发送附件文件是有大小限制的,一般都是只能发送几十M,如果再大就要花钱开通大文件传送了。
# -*- coding: UTF-8 -*-
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr
from time import sleep
# from email.header import Header
def sent_mes(path, name):
# 构造附件1,传送path 文件
att1 = MIMEText(open(path, 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
# 这里的filename可以任意写,写什么名字,邮件中显示什么名字
att1["Content-Disposition"] = f'attachment; filename= {name}'
message.attach(att1)
# sender = "ligen_123@126.com"
# password = 'DQYMSQRHJEOCRR'
# smtpserver = 'smtp.126.com' 465
mail_host = 'smtp.126.com'
mail_port = 465
mail_user = 'ligen_123@126.com'
mail_passwd = 'DQYMSJEXSOCRR'
sender = 'ligen_123@126.com'
receivers = '1694489278@qq.com'
message = MIMEMultipart()
message['From'] = formataddr(['lg', sender])
message['To'] = formataddr(['河北省', receivers])
message['Subject'] = 'naq和气象图片'
message.attach(MIMEText('这是图片邮件','plain', 'utf-8'))
sent_mes('/root/ou_zhou.zip','ou_zhou.zip')
sent_mes('/root/han_guo.zip','han_guo.zip')
#sent_mes('/root/NAQPMS.zip','NAQPMS.zip')
smtp = smtplib.SMTP_SSL(mail_host,mail_port)
smtp.login(mail_user, mail_passwd)
print("发送成功")
smtp.sendmail(sender,receivers,message.as_string())
# print("发送成功")