1. nodename nor servname provided
原因:Python程序中有段程序调用
socket.gethostbyname(socket.gethostname())
socket.gethostname()获取到主机名,但是socket.gethostbyname()函数无法获取主机名对应的IP地址,所以报错
解决办法:本地通过print socket.gethostname()拿到主机名,然后再本地的hosts文件中添加主机名和本地IP地址的映射
2. Envolope sender mismatch with header from
原因:学习发送邮件,sendmail的发送消息体中没有From关键要素,所以报错
msg = MIMEText(content, "plain", _charset='utf-8')
msg['Subject'] = Header(subject, 'utf-8')
msg["From"] = mail_from
解决办法:如上所示,构造消息体中添加From要素,表示发件人,不能为空,然后调用服务发送邮件
smtp.sendmail(mail_from,mail_to,msg.as_string())