【问题标题】:'NoneType' object has no attribute 'encode' and SMTP 334 Error“NoneType”对象没有“编码”属性和 SMTP 334 错误
【发布时间】:2023-03-09 16:43:01
【问题描述】:

我目前正在尝试给自己发送一封电子邮件。我之前做过这个没有任何问题,但是当我今天再次尝试时,我遇到了两个单独的错误。

import smtplib
import os
   
EMAIL_ADDRESS = os.environ.get('GMAIL_USER')
EMAIL_PASSWORD = os.environ.get('GMAIL_PASS')

with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()

    smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
    subject = 'Subject'
    body = 'hello'
    msg = f'Subject: {subject}\n\n{body}'
    smtp.sendmail(EMAIL_ADDRESS, 'email@gmail.com', msg)

    # smtp.send_message(msg)

这是我收到的消息

Traceback (most recent call last):
  File "/Users/Desktop/Python_Projects/climbing_notif/Test.py", line 19, in <module>
    smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
  File "/Users/opt/anaconda3/lib/python3.7/smtplib.py", line 721, in login
    initial_response_ok=initial_response_ok)
  File "/Users/opt/anaconda3/lib/python3.7/smtplib.py", line 638, in auth
    authobject(challenge).encode('ascii'), eol='')
AttributeError: 'NoneType' object has no attribute 'encode'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/Desktop/Python_Projects/climbing_notif/Test.py", line 23, in <module>
    smtp.sendmail(EMAIL_ADDRESS, 'email@gmail.com', msg)
  File "/Users/opt/anaconda3/lib/python3.7/smtplib.py", line 280, in __exit__
    raise SMTPResponseException(code, message)
smtplib.SMTPResponseException: (334, b'UGFzc3dvcmQ6')

如果有任何帮助,我将不胜感激,谢谢!

【问题讨论】:

标签: python email smtp gmail


【解决方案1】:

在运行您的代码时,我遇到了同样的错误,并且我的设备上没有相同的环境变量。 一个可能的原因可能是您输入的环境变量不存在,或者以某种方式被删除。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我只需在代码中输入我的电子邮件和密码即可解决。不过这样做并不安全

    【讨论】:

    • 如果这不是一种安全的方法,为什么要给出这个答案?
    • 如果您不与任何人共享您的代码,这没什么大不了的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2017-09-14
    • 2021-02-17
    • 2023-02-17
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多