Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python+;smtp如何发送带有附件的电子邮件?_Python - Fatal编程技术网

python+;smtp如何发送带有附件的电子邮件?

python+;smtp如何发送带有附件的电子邮件?,python,Python,我正在尝试使用smpt发送带有attachmant的电子邮件。但是,我的文件是“doc”或“txt”类型,我想以“pdf”类型发送附件。是否有未知参数可以执行此操作 import smtplib import base64 from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication import os server=smtplib.SMTP() server.c

我正在尝试使用smpt发送带有attachmant的电子邮件。但是,我的文件是“doc”或“txt”类型,我想以“pdf”类型发送附件。是否有未知参数可以执行此操作

import smtplib
import base64
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import os
server=smtplib.SMTP()
server.connect("smtp..com")
server.login("TTTTT@163.com","YYYYYY")
msg=MIMEMultipart('')
msg['From']="TTTTT@163.com"
msg['Subject']="opp"
with open("D:\log1.doc", 'rb') as f:
   content = base64.standard_b64encode(f.read()).decode()
part = MIMEApplication(content)
newfilename = 'resume.pdf'
part.add_header('Content-Disposition', 'attachment', filename=newfilename)
msg.attach(part)
msg['To']="XXX@gmail.com"
server.send_message(msg)
使用代码,错误发生了!附件文件无法打开!我怎样才能解决这个问题?
谢谢你的帮助。

你不能把一个.txt文件以.pdf格式发送出去。您需要先将其转换为PDF格式。您可以尝试将文件从.txt重命名为.pdf,但这不会有多大效果,因为您需要设置内容配置和内容类型


您混淆了三件事:SMTP是发送完整电子邮件的协议,MIME类型是电子邮件中声明的附件的内容类型,以及文件的实际内容类型。如果你想发送一个pdf格式的文件,你必须先转换它。
import string
import time
from email.header    import Header
from email.mime.text import MIMEText
from getpass         import getpass
from smtplib         import SMTP_SSL
from email.MIMEMultipart import MIMEMultipart 

import smtplib 
msg = MIMEMultipart()
filename = "textfile.txt"
f = file(filename)
fromaddr = '*******@gmail.com'
toaddrs  = 'gamil addr'
#msg = 'There was a terrible error that occured and I wanted you to know!'

attachment = MIMEText(f.read())
attachment.add_header('Content-Disposition', 'attachment',   filename=filename)           
msg.attach(attachment)
# Credentials (if needed)
username = 'gamil addr'
password = 'passwrd'

# The actual mail send
#server = smtplib.SMTP('smtp.gmail.com:587')
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg.as_string() )
server.quit()