VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 8
声望: 0

QQ邮箱代码运行后显示 SMTPResponseException: (-1, b'\x00\x00\x00') 什么原因

报错信息如下:

SMTPResponseException Traceback (most recent call last)
Cell In[6], line 1
----> 1 with smtplib.SMTP_SSL("smtp.qq.com", 465) as smtp:
2 smtp.login("1234@qq.com", "123456")
3 smtp.send_message(msg)

File D:\veighna_studio\lib\smtplib.py:284, in SMTP.exit(self, *args)
282 code, message = self.docmd("QUIT")
283 if code != 221:
--> 284 raise SMTPResponseException(code, message)
285 except SMTPServerDisconnected:
286 pass

SMTPResponseException: (-1, b'\x00\x00\x00')

Member
avatar
加入于:
帖子: 8
声望: 0

邮件可以正常收到,但是会报错这个。

Member
avatar
加入于:
帖子: 8
声望: 0

with smtplib.SMTP_SSL("smtp.qq.com", 465) as smtp:
smtp.login("1234@qq.com", "123456")
smtp.send_message(msg)

前面调试代码是这个

Member
avatar
加入于:
帖子: 8
声望: 0

使用163邮箱运行的时候没有出错,使用了QQ邮箱 就报错了。是不是QQ邮箱的返回值做了修改?

Super Moderator
avatar
加入于:
帖子: 62
声望: 7

这个错误通常与QQ邮箱的SMTP服务器连接或认证问题有关。以下是可能的原因和解决方法:

可能原因

  1. 授权码错误:QQ邮箱的SMTP登录需要使用授权码,而不是邮箱密码。如果使用的是邮箱密码而非授权码,会导致认证失败。
  2. SMTP服务器配置错误:SMTP服务器地址或端口号配置不正确。
  3. 网络问题:网络连接不稳定或防火墙阻止了SMTP连接。
  4. 邮箱未开启SMTP服务:QQ邮箱的SMTP服务需要手动开启,如果未开启,无法通过SMTP发送邮件。

解决方法

  1. 检查授权码

    • 登录QQ邮箱,进入【设置】->【账户】。
    • 找到【POP3/IMAP/SMTP服务】选项,开启SMTP服务并生成授权码。
    • 确保代码中使用的是生成的授权码,而不是邮箱密码。
  2. 检查SMTP服务器配置

    • 确保SMTP服务器地址为smtp.qq.com,端口号为465(SSL加密)或587(TLS加密)。
    • 示例代码:
      with smtplib.SMTP_SSL("smtp.qq.com", 465) as smtp:
          smtp.login("1234@qq.com", "授权码")
          smtp.send_message(msg)
      
  3. 检查网络连接

    • 确保网络连接正常,尝试使用其他网络环境测试。
    • 检查防火墙或安全软件是否阻止了SMTP连接。
  4. 开启SMTP服务

    • 如果未开启SMTP服务,按照上述步骤开启并生成授权码。

示例代码

以下是使用QQ邮箱发送邮件的完整示例代码:

import smtplib
from email.message import EmailMessage

# 邮件内容
msg = EmailMessage()
msg["From"] = "1234@qq.com"
msg["To"] = "receiver@example.com"
msg["Subject"] = "测试邮件"
msg.set_content("这是一封测试邮件。")

# 发送邮件
try:
    with smtplib.SMTP_SSL("smtp.qq.com", 465) as smtp:
        smtp.login("1234@qq.com", "授权码")  # 使用授权码而非密码
        smtp.send_message(msg)
    print("邮件发送成功!")
except Exception as e:
    print(f"邮件发送失败:{e}")

如果问题仍然存在,请检查QQ邮箱的SMTP服务状态,或联系QQ邮箱客服获取进一步帮助。

Member
avatar
加入于:
帖子: 8
声望: 0

VeighNa_AI wrote:

这个错误通常与QQ邮箱的SMTP服务器连接或认证问题有关。以下是可能的原因和解决方法:

可能原因

  1. 授权码错误:QQ邮箱的SMTP登录需要使用授权码,而不是邮箱密码。如果使用的是邮箱密码而非授权码,会导致认证失败。
  2. SMTP服务器配置错误:SMTP服务器地址或端口号配置不正确。
  3. 网络问题:网络连接不稳定或防火墙阻止了SMTP连接。
  4. 邮箱未开启SMTP服务:QQ邮箱的SMTP服务需要手动开启,如果未开启,无法通过SMTP发送邮件。

解决方法

  1. 检查授权码

    • 登录QQ邮箱,进入【设置】->【账户】。
    • 找到【POP3/IMAP/SMTP服务】选项,开启SMTP服务并生成授权码。
    • 确保代码中使用的是生成的授权码,而不是邮箱密码。
  2. 检查SMTP服务器配置

    • 确保SMTP服务器地址为smtp.qq.com,端口号为465(SSL加密)或587(TLS加密)。
    • 示例代码:
      with smtplib.SMTP_SSL("smtp.qq.com", 465) as smtp:
          smtp.login("1234@qq.com", "授权码")
          smtp.send_message(msg)
      
  3. 检查网络连接

    • 确保网络连接正常,尝试使用其他网络环境测试。
    • 检查防火墙或安全软件是否阻止了SMTP连接。
  4. 开启SMTP服务

    • 如果未开启SMTP服务,按照上述步骤开启并生成授权码。

示例代码

以下是使用QQ邮箱发送邮件的完整示例代码:

import smtplib
from email.message import EmailMessage

# 邮件内容
msg = EmailMessage()
msg["From"] = "1234@qq.com"
msg["To"] = "receiver@example.com"
msg["Subject"] = "测试邮件"
msg.set_content("这是一封测试邮件。")

# 发送邮件
try:
    with smtplib.SMTP_SSL("smtp.qq.com", 465) as smtp:
        smtp.login("1234@qq.com", "授权码")  # 使用授权码而非密码
        smtp.send_message(msg)
    print("邮件发送成功!")
except Exception as e:
    print(f"邮件发送失败:{e}")

如果问题仍然存在,请检查QQ邮箱的SMTP服务状态,或联系QQ邮箱客服获取进一步帮助。
感谢,我去问问一下QQ客服 ,根据您的代码调试 邮件也是能够收到的,只是返回值还是报错 报错内容:
邮件发送失败:(-1, b'\x00\x00\x00')

Member
avatar
加入于:
帖子: 43
声望: 3

ed无提-学无止境 wrote:

VeighNa_AI wrote:

这个错误通常与QQ邮箱的SMTP服务器连接或认证问题有关。以下是可能的原因和解决方法:

可能原因

  1. 授权码错误:QQ邮箱的SMTP登录需要使用授权码,而不是邮箱密码。如果使用的是邮箱密码而非授权码,会导致认证失败。
  2. SMTP服务器配置错误:SMTP服务器地址或端口号配置不正确。
  3. 网络问题:网络连接不稳定或防火墙阻止了SMTP连接。
  4. 邮箱未开启SMTP服务:QQ邮箱的SMTP服务需要手动开启,如果未开启,无法通过SMTP发送邮件。

解决方法

  1. 检查授权码

    • 登录QQ邮箱,进入【设置】->【账户】。
    • 找到【POP3/IMAP/SMTP服务】选项,开启SMTP服务并生成授权码。
    • 确保代码中使用的是生成的授权码,而不是邮箱密码。
  2. 检查SMTP服务器配置

    • 确保SMTP服务器地址为smtp.qq.com,端口号为465(SSL加密)或587(TLS加密)。
    • 示例代码:
      with smtplib.SMTP_SSL("smtp.qq.com", 465) as smtp:
          smtp.login("1234@qq.com", "授权码")
          smtp.send_message(msg)
      
  3. 检查网络连接

    • 确保网络连接正常,尝试使用其他网络环境测试。
    • 检查防火墙或安全软件是否阻止了SMTP连接。
  4. 开启SMTP服务

    • 如果未开启SMTP服务,按照上述步骤开启并生成授权码。

示例代码

以下是使用QQ邮箱发送邮件的完整示例代码:

import smtplib
from email.message import EmailMessage

# 邮件内容
msg = EmailMessage()
msg["From"] = "1234@qq.com"
msg["To"] = "receiver@example.com"
msg["Subject"] = "测试邮件"
msg.set_content("这是一封测试邮件。")

# 发送邮件
try:
    with smtplib.SMTP_SSL("smtp.qq.com", 465) as smtp:
        smtp.login("1234@qq.com", "授权码")  # 使用授权码而非密码
        smtp.send_message(msg)
    print("邮件发送成功!")
except Exception as e:
    print(f"邮件发送失败:{e}")

如果问题仍然存在,请检查QQ邮箱的SMTP服务状态,或联系QQ邮箱客服获取进一步帮助。
感谢,我去问问一下QQ客服 ,根据您的代码调试 邮件也是能够收到的,只是返回值还是报错 报错内容:
邮件发送失败:(-1, b'\x00\x00\x00')
兄弟怎么解决的?我也遇到同样问题

Member
avatar
加入于:
帖子: 5361
声望: 325

可以参考一下7楼https://www.vnpy.com/forum/topic/33242-yi-zhi-zheng-chang-fa-de-you-jian-tu-ran-bao-cuo?page=1#pid65266

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】