‘utf-8‘ codec can‘t decode byte 0xb9 in position 0: invalid start byte

代码实现了发邮件:

#Header包是用来处理邮件基本信息(发送者、接收者、邮件的标题)
from email.header import Header
#MIMEText邮件文本内容
from email.mime.text import MIMEText
#发邮件所要用的工具包
from email.utils import parseaddr,formataddr
import smtplib

def title(s):
    print(s)
    name,addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))
#发送者
fromAddr = '发送邮箱'
#授权码
password = '授权码'
#接收者
toAddr = '接受邮箱'
#协议服务器
server = 'smtp.163.com'
port = 25
#邮件正文
msg = MIMEText('发红包啦~~~', 'plain', 'utf-8')
# msg = MIMEText('消息', 'plain', 'utf-8')
#邮件标题
msg['Subject'] = Header('粉少女战士', 'utf-8').encode()
#邮件发送者昵称
msg['From'] = title('啦啦啦<%s>' % fromAddr)
#邮件接受者昵称
msg['To'] = title('<%s>' % toAddr)

server = smtplib.SMTP(server, port)
server.login(fromAddr, password)
server.sendmail(fromAddr, [toAddr], msg.as_string())
server.quit() #记得关闭

报错方式为:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte

原因:Unicode编码格式不统一。

解决方式为:

电脑名不能是中文名,将自己的电脑名称改为英文,重启电脑即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值