鱼C论坛

 找回密码
 立即注册
查看: 2555|回复: 1

[已解决]python发送邮件时出现异常报错,求详解

[复制链接]
发表于 2021-3-29 10:51:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import smtplib
import socket, getpass, os
from email.mime.text import *
from email.header import *
from email.mime.multipart import *
from email.mime.application import *

host_name = socket.gethostname()

send="XXXXXX"
password='XXXXXXXX'
smtpip = 'XXXXXXX'

receviers=['XXXXXXX']


#邮件内容
message = MIMEText('111test','plain','utf-8')
#邮件主题
#subject = host_name
message['subject'] = Header(host_name,'utf-8')

att1 = MIMEText(open('111.txt','rb').read(),'base64','utf-8')

att1['Content-Type'] = 'application/octet-stream'

att1.add_header('Content-Disposition','attachment',filename = '111.txt')
message.attach(att1)

#实例化对象
smtp = smtplib.SMTP()
#设置连接端口
smtp.connect(smtpip,25)
#账号登录
smtp.login(send,password)
smtp.sendmail(send,receviers,message.as_string())
smtp.quit()


在带附件时出现下面这个报错信息
Traceback (most recent call last):
  File "stmpeml.py", line 29, in <module>
    message.attach(att1)
  File "c:\\Python\Python38\lib\email\mime\nonmultipart.py", line 21, in attach
    raise errors.MultipartConversionError(
email.errors.MultipartConversionError: Cannot attach additional subparts to non-multipart/*

在去除添加附件的代码,邮件发送是正常的

源代码中剔除了
发件人
send="XXXXXX"
密码
password='XXXXXXXX'
发送服务器ip
smtpip = 'XXXXXXX'
收件人
receviers=['XXXXXXX']
最佳答案
2021-3-29 13:01:26
发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。
https://www.runoob.com/python3/python3-smtp.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-29 13:01:26 | 显示全部楼层    本楼为最佳答案   
发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。
https://www.runoob.com/python3/python3-smtp.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 04:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表