姜大炮 2022-04-29 14:29 采纳率: 0%
浏览 25

Python3 发送带附件的邮件 附件名如何引入变量?

问题遇到的现象和发生背景

每天爬出来的文件,需要当天发送邮件,文件名称是变量,一直没想通,在把文件作为附件提取上传的时候,应该用什么代码写,自己简单写的,总感觉逻辑不对,老报错

问题相关代码,请勿粘贴截图
#价格爬取以及xlsx保存的代码
 if __name__ == '__main__':
    # 爬取京东页面价(通过更改第一个urls里面的商品id进行链接的调整)
    jd_urls = ["100010666763"]
    jd_urls = ['https://item.jd.com/%s.html' % i for i in jd_urls]
    today_str = datetime.datetime.today().strftime('%Y-%m-%d')
    jdPageDetail = JdPageDetail()
    jd_csv_path, jd_xls_path = 'temp_jd_{0}.csv'.format(today_str), 'temp_jd_{0}.xlsx'.format(today_str)
    jdPageDetail.get_jd_pro_info_new(jd_urls, jd_csv_path)

    handleData = HandleDataNew()
    handleData.handleFinish(jd_csv_path, 'jd',jd_xls_path)

#发送邮件附件
import smtplib
from email.mime.multipart import MIMEMultipart
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.mime.application import MIMEApplication

# 发件人邮箱
asender = "123@sina.com"
# 收件人邮箱
areceiver = "123@sina.com"
# 抄送人邮箱
acc = '123@sina.com'
# 邮件主题
asubject = '每日比价(' + str(datetime) + ')'

# 发件人地址
from_addr = "123@sin.com"
# 邮箱密码(授权码)
password = "******"

# 邮件设置
msg = MIMEMultipart()
msg['Subject'] = asubject
msg['to'] = areceiver
msg['Cc'] = acc
msg['from'] = "Jac"

# 邮件正文
body = "你好,这是一份测试邮件"

# 添加邮件正文:
msg.attach(MIMEText(body, 'plain', 'utf-8'))

# 添加附件 上传附件的代码
# 注意这里的文件路径是斜杠
xlsxpart = MIMEApplication(open('F:/0002-2-类目运营相关/3-比价表/0-1-Py爬价格/temp_jd_{0}.xlsx', 'rb').read())
xlsxpart.add_header('Content-Disposition', 'attachment', filename='temp_sn_2022-04-29.xlsx')
msg.attach(xlsxpart)

运行结果及报错内容
Traceback (most recent call last):
  File "C:\Users\Jac\AppData\Roaming\JetBrains\PyCharm2021.1\scratches\hello.py", line 38, in <module>
    xlsxpart = MIMEApplication(open(f'F:/0002-2-运营相关/3-比价表/0-1-Py爬价格/temp_jd_{0}.xlsx', 'rb').read())
FileNotFoundError: [Errno 2] No such file or directory: 'F:/0002-2-运营相关/3-比价表/0-1-Py爬价格/temp_jd_0.xlsx'


我想要达到的结果

img


直接把我爬出来的这些xlsx文件上传到页面

  • 写回答

1条回答 默认 最新

  • ~白+黑 Python领域新星创作者 2022-04-29 16:30
    关注
    xlsxpart = MIMEApplication(open(f'F:/0002-2-运营相关/3-比价表/0-1-Py爬价格/temp_jd_{0}.xlsx', 'rb').read())你这个格式化字符串里面的0应该换成变量名字
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月29日

悬赏问题

  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验