能在pycharm运行,服务器上运行不了

其他一切正常,只有发邮件这一部分运行出错

def email():
    mail_host = "smtp.qq.com"
    mail_user = "xxx@qq.com"
    mail_pass = "xxx"

    sender = 'xxx@qq.com'
    receivers = ['xxxx@qq.com']
    message = MIMEText('今日健康打卡已成功', 'plain', 'utf-8')
    message['From'] = Header("pyy", 'utf-8')
    message['To'] = Header("测试", 'utf-8')

    subject = '自动 SMTP 打卡'
    message['Subject'] = Header(subject, 'utf-8')

    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(sender, receivers, message.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException:
        print("Error: 无法发送邮件")

错误如下

 

pycharm中

我也遇到过一次这样的问题,本地用25端口发邮件没有问题,到服务器就不行。
后面服务器改用SSL方式 + 465端口,就没有问题了,原因是什么还不得而知。

smtp = smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)

不知道是否能帮到你

这个是发邮件功能无法成功,你单独将这个功能抽到一个py文件里面去,然后调试完这个功能再融入其他功能。。发送邮件要设置邮箱的