问题分析:
你在使用Python发送邮件时遇到的问题是,收到的附件文件无法直接查看,但是通过邮件客户端发送后可以正常打开。
解决方案:
问题可能出在邮件附件的编码上。为了确保附件能够正确传输和显示,你需要指定正确的编码方式,并且对附件进行适当的编码处理。
下面是修改后的代码,请参考:import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.application import MIMEApplicationfrom email.mime.text import MIMETextfrom email import encoderssender = "xxx123@163.com"receiver = "xxx@qq.com"content = "测试邮件内容"file_path = "mail.txt"message = MIMEMultipart()message["Subject"] = "Hello"message["From"] = sendermessage["To"] = receivertext = MIMEText(content, "plain", "utf-8")message.attach(text)with open(file_path, "rb") as f: attachment = MIMEApplication(f.read()) attachment.add_header("Content-Disposition", "attachment", filename=file_path) message.attach(attachment)smtp_obj = smtplib.SMTP("smtp.163.com", 25)smtp_obj.login("xxx@163.com", "[b][/b][b][/b][b][/b]")try: smtp_obj.sendmail(sender, receiver, message.as_string()) print("邮件发送成功!")except smtplib.SMTPException as err: print('邮件发送失败:', err)smtp_obj.quit()
在这个修改后的代码中,我去除了对附件内容的编码操作encoders.encode_base64(attachment),并且在创建附件对象时不指定编码方式,默认使用二进制传输附件内容。
请尝试运行修改后的代码,查看是否能够正常显示附件内容。如果问题仍然存在,请提供更多详细的错误信息或现象,以便我能够进一步帮助你解决问题。
如果回答对你有帮助,请给我一个最佳答案!
|