liunx环境下 python使用stmplib 发邮箱

linux  发送邮箱存在一些问题,  首先  必须使用SSL 加密操作, 端口  必须为465,    同时使用SSL 的时候还有一些问题, 必须再构造函数中传入Host(邮箱网站地址) ,    终于成功了,         

smtp_obj = smtplib.SMTP_SSL(host=HOST)

详细代码在下方,  大概说下流程

我使用的是163邮箱 ,首先你得 在163邮箱设置   运行客户端登陆 发邮箱,  

具体操作如下 :

之后再开启客户端授权码

这样操作就完成了 ,

代码编写  :

    # 网易163邮箱
    HOST = 'smtp.163.com'
    # 2> 配置服务的端口,默认的邮件端口是25. 465为ssl 的端口
    PORT = '465'
    # 3> 指定发件人和收件人。
    FROM = 'xxxxxxx@163.com'
    # TO = 'xxxxx.@163com'
    # 4> 邮件标题
    SUBJECT = '爬虫异常警告'
    # 5> 邮件内容
    CONTENT = message + "\n" + str(ex)

    # 创建邮件发送对象
    # 普通的邮件发送形式
    #smtp_obj = smtplib.SMTP()

    # 数据在传输过程中会被加密。
    smtp_obj = smtplib.SMTP_SSL(host=HOST)

    # 需要进行发件人的认证,授权。
    # smtp_obj就是一个第三方客户端对象
    smtp_obj.connect(host=HOST, port=PORT)

    # 如果使用第三方客户端登录,要求使用授权码,不能使用真实密码,防止密码泄露。
    res = smtp_obj.login(user=FROM, password='授权码')
    print('登录结果:', res)

    # 发送邮件
    msg = '\n'.join(
        ['From: {}'.format(FROM), 'To: {}'.format(TO), 'Subject: {}'.format(SUBJECT), '', CONTENT])  # ''此单引号不能少
    smtp_obj.sendmail(from_addr=FROM, to_addrs=TO, msg=msg.encode('utf-8'))

 

这个是通过我整理出来的, 你可能觉得,粘贴复制就能运行,很简单   却不知道我开始踩坑的幸苦,   如果可以点个赞吧 

 

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值