分享一个自制的python脚本,主要解决了,邮件附件通常是读取本地文件。
如果想要把一个远程视频通过附件发过去,通常操作为下载文件到本地->发件读取本地文件。
具体其他操作,还请各位伙计扩展思路。
<hr>代码:
import smtplib
# smtplib 用于邮件的发信动作
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.application import MIMEApplication
import requests
# 处理任意二进制文件
if __name__ == '__main__':
# 创建包含多个部分的邮件体的 MIME 对象实例
user = 'xxx@xxx.com' # 发件人邮箱账号
password = 'pwd' # 发件人邮箱密码/授权码
to_addr = 'xxx@qq.com' # 收件人地址
smtp_serv = 'smtp.xxx.com' # 发信服务器
smtp_port= 465
# 远程视频链接
url='http://image.smoba.qq.com/Banner/img/Video/skin/301119.mp4'
# 附件名称,重命名
filename='孙尚香-因你心动.mp4'
msg = MIMEMultipart()
msg['From'] = Header("远程文件附件转储", 'utf-8')
msg['To'] = Header("收件小伙子", 'utf-8')
msg['Subject'] = Header('一封Python的来信', 'utf-8')
msg.attach(MIMEText('添加一些小内容哦', _subtype='html', _charset='utf-8'))
part = MIMEApplication(requests.get(url).content)
part.add_header('Content-Disposition', 'attachment', filename=filename)
msg.attach(part)
server = smtplib.SMTP(smtp_serv) # 开启发信服务(也可使用加密传输)
server.connect(smtp_serv,smtp_port) # 连接服务器
server.starttls()
server.login(user, password) # 登录发信邮箱
server.sendmail(user,to_addr, msg.as_string()) # 发送邮件
server.quit() # 关闭服务器
<hr>
期待一同进步
|