71 lines
2.0 KiB
Python
71 lines
2.0 KiB
Python
import smtplib
|
||
from email.mime.multipart import MIMEMultipart
|
||
from email.mime.text import MIMEText
|
||
from email.mime.base import MIMEBase
|
||
from email.header import Header
|
||
from email import encoders
|
||
|
||
mail_host = {
|
||
"host": 'smtp.qq.com',
|
||
"port": 465
|
||
}
|
||
mail_user = {
|
||
"user": 'admin@fanscloud.net',
|
||
"pass": 'gyzzvmjdlofnbedj'
|
||
}
|
||
sender = "admin@fanscloud.net"
|
||
|
||
mailToList = [
|
||
"1634991757@qq.com",
|
||
"fanscloud@foxmail.com"
|
||
]
|
||
mailCcList = [
|
||
"zhaoyafan@foxmail.com"
|
||
]
|
||
mailBcList = [
|
||
|
||
]
|
||
html = '''
|
||
<p>Python 邮件发送HTML格式文件测试...</p>
|
||
<p><a href="http://www.runoob.com">这是一个链接</a></p>
|
||
'''
|
||
message = MIMEMultipart()
|
||
messageFrom = Header()
|
||
messageFrom.append('云凡网络')
|
||
messageFrom.append('<admin@fanscloud.net>')
|
||
print(messageFrom)
|
||
message["From"] = messageFrom
|
||
message["To"] = ';'.join(mailToList)
|
||
message["Cc"] = ';'.join(mailCcList)
|
||
message["Bcc"] = ';'.join(mailBcList)
|
||
message['Subject'] = Header('主题333')
|
||
message.attach(MIMEText(html, 'html', 'utf-8'))
|
||
|
||
|
||
# 构造附件2,传送当前目录下的 runoob.txt 文件
|
||
# att2 = MIMEText(open('./1.xlsx', 'rb').read(), 'base64', 'utf-8')
|
||
# att2["Content-Type"] = 'application/octet-stream'
|
||
# file = Header('attachment; filename=')
|
||
#
|
||
# att2["Content-Disposition"] = file
|
||
# message.attach(att2)
|
||
#
|
||
#
|
||
# print(file)
|
||
|
||
mime = MIMEBase('application','octet-stream')
|
||
mime.add_header('Content-Disposition', 'attachment', filename='文件文件.xlsx')
|
||
mime.set_payload(open('./1.xlsx', 'rb').read())
|
||
# 用Base64编码:
|
||
encoders.encode_base64(mime)
|
||
# 添加到MIMEMultipart:
|
||
message.attach(mime)
|
||
|
||
print("加密后的发送内容\n", message.as_string()) # 打印输出加密后的发送内容
|
||
#
|
||
#
|
||
smtpObj = smtplib.SMTP_SSL(mail_host['host'], mail_host['port'])
|
||
# smtpObj.connect(mail_host['host'], mail_host['port']) # 链接 SMTP 服务器
|
||
smtpObj.login(mail_user['user'], mail_user['pass']) # 登录邮箱验证
|
||
smtpObj.sendmail(sender, mailToList, message.as_string()) # 发送邮件; "message" 通过 "as_string()" 进行发送内容字符串的加密
|