python+smtp发送邮件附件问题

文件是txt或者word格式的,但是要求附件发送过去是pdf格式的,smpt有没有什么参数是可以设置的,我设置了_subtype="pdf",最后附件打开会报错,说不是一个pdf文件,打不开

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import traceback
import os
server=smtplib.SMTP()
server.connect("smtp.163.com")
server.login("XXXXXX@163.com","YYYYYY")
msg=MIMEMultipart('')
msg['From']="XXXXXX@163.com"
msg['Subject']="opp"
part = MIMEApplication(open("D:\log.txt", 'rb').read(),_subtype='pdf')
#filetype="pdf"
filetype = os.path.splitext("D:\log.txt")[-1][1:]
newfilename = 'resume' + '.' + filetype
part.add_header('Content-Disposition', 'attachment', filename=newfilename)
msg.attach(part)
msg['To']="TTTTTT@163.com"
server.send_message(msg)

求解
直接报filetype改成pdf也会文件报错

阅读 3.5k
1 个回答

SMTP is the protocol you are sending the completed email with, the MIME type is the content type of the attachment as declared in the email and the actual content type the file has. If you want to send a doc file as pdf you have to convert it first.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题