python SMTP 发送邮件 阿里企业邮箱、163邮箱 及535错误 - Go语言中文社区

python SMTP 发送邮件 阿里企业邮箱、163邮箱 及535错误


class SendEmail(object):
    def __init__(self, type, to_addr):
        self.to_addr = to_addr
        self.sys_date = time.strftime('%Y-%m-%d', time.localtime())
        content = u'这是测试邮件内容'if type == 'hichina':    # 阿里企业邮箱
            self.from_addr = 'username@520czj.com'
            self.password = 'user password'
            self.smtp_server = 'smtp.mxhichina.com'
        else:    # 163邮箱
            self.from_addr = "username@163.com"
            self.password = 'user password'
            self.smtp_server = "smtp.163.com"

    def _format_addr(self, s):
        name, addr = parseaddr(s)
        return formataddr((Header(name, 'utf-8').encode(), addr.encode('utf-8') if isinstance(addr, unicode) else addr))

    def send_email(self, content):
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['From'] = self._format_addr(u'车装甲客服 <%s>' % self.from_addr)
        msg['To'] = self._format_addr(u'经销商 <%s>' % self.to_addr)
        msg['Subject'] = Header(u'送油通知', 'utf-8').encode()

        server = smtplib.SMTP(self.smtp_server, 25)
        # server.set_debuglevel(1)    # 打印debug信息
        server.login(self.from_addr, self.password)
        server.sendmail(self.from_addr, [self.to_addr], msg.as_string())
        server.quit()

注意:

1. 阿里企业邮箱默认SMTP是开通的,但是给同一收件人半小时内不能发第二封

2. 163邮箱默认是不开通SMTP的,设置如下这里需要设置授权密码,设置之后程序里的password为此授权密码,不是登录密码;

3. 163邮箱抛异常:

raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')

两个原因1)没有设置客户端授权;2)密码错误;

 

转载于:https://www.cnblogs.com/aaron-agu/p/7553559.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_30636089/article/details/95135658
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 18:09:28
  • 阅读 ( 1183 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢