python发送简单邮件

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

代码

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主机不同
  • POP3服务器: pop.163.com
  • SMTP服务器: smtp.163.com
  • IMAP服务器: imap.163.com
  1. email_pwd 为授权码,不是你的邮箱密码,必须确保开启SMTP服务才能通过SMTP邮箱代理发送
    如果对勾没有点上,在点的时候会让你设置授权码,这个授权码就是上面发送的密码
  2. 25端口为SMTP端口,如果使用SSL,端口改为465/994 #常见错误汇总
  3. ConnectionRefused
  • 邮箱没有开通SMTP服务
  • 登录密码没有使用授权码
  • 晚上一般服务器邮箱网络不稳定,163邮箱设置的时候隔天才生效

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

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

  1. 线上服务器无法发送邮件或者发送邮件时间过长
  • 线上服务器一般默认25端口封闭,必须申请25端口解封才能发送邮件
  • 25端口发送邮件一定要借助第三方的SMTP服务,不要自己搭建SMTP然后发送邮件,会让自己的服务器公网IP被回收

转载于:https://juejin.im/post/5ad4ba836fb9a028c06b4d77

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值