python发送邮件廖雪峰_求教!关于 Python3 SMTP 发送邮件的编码问题

学习廖雪峰Python教程时遇到邮件发送的编码错误,使用Python3.5.2环境下发送带有中文字符的邮件时出现UnicodeEncodeError异常。
部署运行你感兴趣的模型镜像

最近在跟着学习廖雪峰的 Python 教程,到发送邮件这一章出现了编码问题,搜索一直得不到解决,特来求助广大 V 友。

以下是代码部分:

from email.mime.text import MIMEText

msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')

# 输入 Email 地址和口令:

from_addr = input('From: ')

password = input('Password: ')

# 输入收件人地址:

to_addr = input('To: ')

# 输入 SMTP 服务器地址:

smtp_server = input('SMTP server: ')

import smtplib

server = smtplib.SMTP(smtp_server, 25)

server.set_debuglevel(1)

server.login(from_addr, password)

server.sendmail(from_addr, [to_addr], msg.as_string())

server.quit()

报错:

SMTP server: smtp.qq.com

send: 'ehlo Sakuoz 丶.lan\r\n'

Traceback (most recent call last):

File "F:\github\pythonTest\pytest.py", line 16, in

server.login(from_addr, password)

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\smtplib.py", line 693, in login

self.ehlo_or_helo_if_needed()

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\smtplib.py", line 599, in ehlo_or_helo_if_needed

if not (200 <= self.ehlo()[0] <= 299):

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\smtplib.py", line 439, in ehlo

self.putcmd(self.ehlo_msg, name or self.local_hostname)

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\smtplib.py", line 366, in putcmd

self.send(str)

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\smtplib.py", line 351, in send

s = s.encode(self.command_encoding)

UnicodeEncodeError: 'ascii' codec can't encode character '\u4e36' in position 11: ordinal not in range(128)

\u4e36 经过 unicode 转换为中文丶,我发送的邮件( QQ to 163 )昵称中也有个丶,所以怀疑可能与昵称有关,但是经过测试删掉昵称中的丶还是报同样的错误,萌新的我一直不知道错在什么地方。。。请问问题出在哪里,该怎么解决,谢谢大家!

开发环境:

windows 10 64bit

python 3.5.2

atom

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值