截至5月30日,谷歌已取消了对不太安全的应用程序访问G-Mail的限制.我正在使用SMTP库从我的flask网站发送邮箱,由于这种方法需要Google刚刚删除的功能,我被卡住了.我正在寻找任何解决这个问题的方法或替代解决方案.

推荐答案

解决方案很简单,不需要太多更改:

  1. Turn on 2-Step Verification在你的谷歌帐户.这一步是required,因为谷歌只允许在启用了两步验证的帐户上为应用程序生成密码.
  2. 转到为你的应用程序生成应用程序密码(https://myaccount.google.com/apppasswords)和generate a password.

  1. 只需使用您的gmail用户名(your_mail@gmail.com)和python应用程序中生成的密码.

我已经用以下脚本测试了我刚才附加到您的内容:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
mail_content = '''
Hello Stack Overflow!!!
'''

sender_address = 'your_mail@gmail.com'
sender_pass = 'generated_password'
receiver_address = 'your_mail@gmail.com'

message = MIMEMultipart()
message['From'] = sender_address
message['To'] = receiver_address
message['Subject'] = 'A test mail sent by Python.'   

message.attach(MIMEText(mail_content, 'plain'))
session = smtplib.SMTP('smtp.gmail.com', 587)
session.starttls()
session.login(sender_address, sender_pass)
text = message.as_string()
session.sendmail(sender_address, receiver_address, text)
session.quit()
print('Mail Sent')

And it worked without problems: enter image description here

Python-3.x相关问答推荐

如何在Django中创建两个不同权限的用户?

Django将任何查询显示为html表格

在BaseHTTPRequestHandler中填充和返回列表

visual studio代码窗口中未激活虚拟环境11

CSV-DAT 转换时将引号添加到数据中

Django在POST到外部URL时如何进行CSRF保护? 更新

Django - ValueError:无法将字符串转换为浮点数:''

如果集合大于 len(x),则 pandas 在重复的行中拆分集合列

如何使用 django rest 框架在 self forienkey 中删除多达 n 种类型的数据?

pip 找不到最新的软件包版本

Dask worker post-processing

为什么 List 不能包含多种类型?

python3:字节与字节数组,并转换为字符串和从字符串转换

ValueError:找不到子字符串,我做错了什么?

Python 3 变量名中接受哪些 Unicode 符号?

Python 类型提示语法如何/为什么起作用?

sys.stdin.readline() 和 input():读取输入行时哪个更快,为什么?

Pyodbc:登录超时错误

python中的订单字典索引

如何使用异步 for 循环遍历列表?