程序员

python发送简单邮件

2018-04-16  本文已影响0人  愤怒的小猥琐

在那些卑微的日子里,不敢去仰望星空的浩瀚,不敢去触碰人间的静好,也不敢去凝望高山的雄壮,不敢去期待流水的细长。

代码

import smtplib
from email.header import Header
from email.mime.text import MIMEText
if __name__ == '__main__':
    email_host = 'smtp.163.com'  
    email_user = '18735123416@163.com'
    email_pwd = '***'  
    maillist = '**@qq.com', '**@qq.com'
    me = email_user
    msg = MIMEText('这是个python测试邮件,不用回复。') 
    msg['Subject'] = 'python测试'  
    msg['From'] = me  # 发送者账号
    smtp = smtplib.SMTP(email_host, 25)  
    smtp.login(email_user, email_pwd) 
    for email in maillist:
        smtp.sendmail(me, email, msg.as_string())
    smtp.quit()  # 发送完毕后退出smtp
    print('email send success.')

注意事项

  1. 不同服务器host主机不同
  1. email_pwd 为授权码,不是你的邮箱密码,必须确保开启SMTP服务才能通过SMTP邮箱代理发送
    SMTP设置
    对勾点上.png
    如果对勾没有点上,在点的时候会让你设置授权码,这个授权码就是上面发送的密码
  2. 25端口为SMTP端口,如果使用SSL,端口改为465/994

常见错误汇总

  1. ConnectionRefused

2.500 Error: bad syntax
这个错误只出现在 Windows 系统上。遇到了这个错误,可在“控制版面”中点击“查看网络状态和任务”进入“网络和共享中心网络连接详细信息”中看到“连接特定的 DNS 后缀”这一项(如下图所示),它的值应该和以上所示报错信息中红色文字所示部分类似,这个值中含有“空格”就是导致发信出错的原因。


500.png

修改步骤为:在“控制版面”中点击“查看网络状态和任务”进入“网络和共享中心”,点击现在使用的网络连接,点击网络连接的【属性】按钮,双击“Internet 协议版本 4(TCP/IPv4)”这一项,再点击【高级】按钮,切换到“DNS”标签,把“此连接的 DNS 后缀”修改为 HOST 或清空,然后依次确认保存。

  1. 线上服务器无法发送邮件或者发送邮件时间过长
上一篇下一篇

猜你喜欢

热点阅读