Python发送邮件报错: smtplib.SMTPException: SMTP AUTH extension not supported by server

Python发送邮件,之前使用的126邮箱都正常,但是今天换成了hotmail,一直报这个错:

smtplib.SMTPException: SMTP AUTH extension not supported by server

我之前的代码如下:

def sendmail(receivers,mailtitle,mailcontent):

    ret=True
    # try:
    # msg=MIMEText(mailcontent,'plain','utf-8')
    msg = MIMEText(mailcontent, 'html', 'utf-8')
    msg['From']=formataddr(["我是小黑",sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
    # msg['To']=formataddr(["收件人昵称",receivers])              # 括号里的对应收件人邮箱昵称、收件人邮箱账号
    msg['Subject']=mailtitle                # 邮件的主题,也可以说是标题

    server = None
    #判断是否为SSL连接
    if flag_mail_ssl:
        server=smtplib.SMTP_SSL(mail_host, mail_port)  # 发件人邮箱中的SMTP服务器
    else:
        server=smtplib.SMTP(mail_host, mail_port)#
    server.login(mail_user, mail_pass)  # 括号中对应的是发件人邮箱账号、邮箱密码
    server.sendmail(sender,receivers,msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
    server.quit()# 关闭连接
    # except Exception as e:# 如果 try 中的语句没有执行,则会执行下面的 ret=False
    #     ret=False
    return ret

上网上搜了一下,要在login之前,加入如下两行代码:

server.ehlo()  # 向Gamil发送SMTP 'ehlo' 命令
server.starttls()

这样就可以了。最终代码为:

def sendmail(receivers,mailtitle,mailcontent):
    ret=True
    # try:
    # msg=MIMEText(mailcontent,'plain','utf-8')
    msg = MIMEText(mailcontent, 'html', 'utf-8')
    msg['From']=formataddr(["我是小黑",sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
    # msg['To']=formataddr(["收件人昵称",receivers])              # 括号里的对应收件人邮箱昵称、收件人邮箱账号
    msg['Subject']=mailtitle                # 邮件的主题,也可以说是标题

    server = None
    #判断是否为SSL连接
    if flag_mail_ssl:
        server=smtplib.SMTP_SSL(mail_host, mail_port)  # 发件人邮箱中的SMTP服务器
    else:
        server=smtplib.SMTP(mail_host, mail_port)#
    server.ehlo()  # 向Gamil发送SMTP 'ehlo' 命令
    server.starttls()
    server.login(mail_user, mail_pass)  # 括号中对应的是发件人邮箱账号、邮箱密码
    server.sendmail(sender,receivers,msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
    server.quit()# 关闭连接
    # except Exception as e:# 如果 try 中的语句没有执行,则会执行下面的 ret=False
    #     ret=False
    return ret


 

转载于:https://my.oschina.net/u/2396236/blog/1787249

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值