Le fichier est au format txt ou word, mais la pièce jointe doit être envoyée au format pdf. Y a-t-il des paramètres qui peuvent être définis dans smpt ? J'ai défini _subtype="pdf", et finalement une erreur sera signalée lors de l'ouverture. la pièce jointe, disant qu'il ne s'agit pas d'un fichier pdf, ne peut pas être ouverte
.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)
Solution
Si vous modifiez directement le type de fichier en pdf, le fichier signalera également une erreur
SMTP est le protocole avec lequel vous envoyez l'e-mail complété, le type MIME est le type de contenu de la pièce jointe tel que déclaré dans l'e-mail et le type de contenu réel du fichier. Si vous souhaitez envoyer un fichier doc au format PDF, vous devez d'abord le convertir.