微笑怪士 发表于 2022-8-5 11:58

python源代码 smtp发邮件添加远程链接为附件

分享一个自制的python脚本,主要解决了,邮件附件通常是读取本地文件。
如果想要把一个远程视频通过附件发过去,通常操作为下载文件到本地->发件读取本地文件。
具体其他操作,还请各位伙计扩展思路。
<hr>代码:
```python
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() # 关闭服务器

```

![收件](https://s1.ax1x.com/2022/08/05/vmTTw8.png)
<hr>
期待一同进步

virsnow 发表于 2022-10-1 18:49

这是我们小白的福音!
页: [1]
查看完整版本: python源代码 smtp发邮件添加远程链接为附件