python邮箱发送出现错误:ValueError: server_hostname cannot be an empty string or start with a leading dot.
运行以下代码出现报错:import smtplibfrom email.mime.text import MIMEText #引入MIMEText模块from email.header import Header #引入Header模块fromyj='发送邮箱'# input('请输入你的邮箱:') #获取邮箱账号mima= '授权码'# input('请输入你的密码:') #获取授权码toyj=
·
运行以下代码出现报错:
import smtplib
from email.mime.text import MIMEText #引入MIMEText模块
from email.header import Header #引入Header模块
fromyj='发送邮箱'# input('请输入你的邮箱:') #获取邮箱账号
mima= '授权码'# input('请输入你的密码:') #获取授权码
toyj= '收件邮箱'#input('请输入收件人的邮箱:') #获取收件人的邮箱
qqmail = smtplib.SMTP_SSL() # 实例化一个ssmtplib模块里的SMTP类的对象,这样就可以使用SMTP对象的方法和属性了
qqmail.connect('smtp.qq.com',465) # 连接服务器,第一个参数是服务器地址,第二个参数是SMTP端口号。
content='正文'#邮件的内容正文
message = MIMEText(content, 'plain', 'utf-8') # 邮件的内容正文设定,内容格式,和编码
sub='主题'
message['Subject']=Header(sub,'utf-8')#正文的标题设定
qqmail.login(fromyj,mima)#用创建的实例 登录发件箱
try:
qqmail.sendmail(fromyj,toyj,message.as_string())
#发送邮件,发件人,收件人,内容强制转换成字符串
print('发送成功')
except:
print('发送失败')
qqmail.quit()#退出邮箱
报错信息如下:
这是因为使用了python3.7版本导致的,python 3.7 修改了 ssl.py 导致了 smtplib.SMTP_SSL 出现如上报错。
因此需要把
qqmail = smtplib.SMTP_SSL()
改为
qqmail = smtplib.SMTP_SSL('smtp.qq.com')
更多推荐
所有评论(0)