以qq邮箱为例
step 1开启smpt
- 1.1打开邮箱
- 1.2. 点击设置
- 1.3 开启smpt
注意需要手机验证,验证后保存弹出的安全密码,后面要用。
- step2.导入logging 包
import logging
from logging.handlers import SMTPHandler
import sys
- step3配置信息
# 1. 创建 logger 实例
logger = logging.getLogger('TEST_SMTP')
# 2. 设置 logger 实例的日志级别,默认是 logging.WARNING
logger.setLevel(logging.INFO)
# 3. 创建 Handler
mail_handler = SMTPHandler(
mailhost=('smtp.qq.com', 25),
fromaddr='1512784113@qq.com',
toaddrs='1512784113@qq.com',
subject='SOMETHING WRONG!!!',
credentials=('1512784113@qq.com', 'step1.3中弹出的安全密码'),
timeout=5.0)
# 4. 单独设置 mail_handler 的日志级别为 ERROR
mail_handler.setLevel(logging.ERROR)
mail_handler.setLevel(logging.ERROR)
# 5. 将 Handler 添加到 logger 中
logger.addHandler(mail_handler)
# 6. 应用(故意出错)
try:
x = 1 / 0
except Exception:
logger.error('[calculation wrong] x = 1 / 0', exc_info=sys.exc_info())
完整代码
import logging
from logging.handlers import SMTPHandler
import sys
def main():
# 1. 创建 logger 实例
logger = logging.getLogger('TEST_SMTP')
# 2. 设置 logger 实例的日志级别,默认是 logging.WARNING
logger.setLevel(logging.INFO)
# 3. 创建 Handler
# 注意 163 邮箱要求 fromaddr 和你发送邮件的邮箱(即你的邮箱账号)要一致
mail_handler = SMTPHandler(
mailhost=('smtp.qq.com', 25),
fromaddr='1512784013@qq.com',
toaddrs='1512784013@qq.com',
subject='SOMETHING WRONG!!!',
credentials=('1512784013@qq.com', 'tpgowsyzkcirbacj'),
timeout=5.0)
# 4. 单独设置 mail_handler 的日志级别为 ERROR
mail_handler.setLevel(logging.ERROR)
# 5. 将 Handler 添加到 logger 中
logger.addHandler(mail_handler)
# 6. 应用(故意出错)
try:
x = 1 / 0
except Exception:
logger.error('[calculation wrong] x = 1 / 0', exc_info=sys.exc_info())
if __name__ == '__main__':
main()