用SendGrid发送邮件,但在邮箱中收不到邮件

顺便说下,dotenv似乎不会转换布尔类型。

所以你在env配置MAIL_USE_TSL=True,用os.getenv('MAIL_USE_TSL')获取的变量还是字符串,最后赋值给MAIL_USE_TSL。造成的一个bug就是如果设置了False是不会成功的。因为

>>> bool('False')
True

测试代码:

.env

boolean1 = True
boolean2 = true
boolean3 = 'true'

load.py

import os
from dotenv import load_dotenv
dotenv_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '.env')
if os.path.exists(dotenv_path):
    load_dotenv(dotenv_path, override=True)

for b in ('boolean1', 'boolean2', 'boolean2'):
    print(type(os.getenv(b)), os.getenv(b))

# print
# <class 'str'> True
# <class 'str'> true
# <class 'str'> true