zoukankan      html  css  js  c++  java
  • Python: 当程序异常时候自动发送邮件

    最近在做项目的时候,因为程序需要放到服务器上,为了防止程序在运行过程中报错而不知道,写了个当有异常的时候自动发送邮件的功能。

    公司用的是outlook,所以用了win32组件Dispatch来实现outlook发送邮件,但是发现偶尔会有报win32com.gen_py异常,需要删除文件夹:C:UsersxxAppDataLocalTempgen_py3.80062FFF-0000-0000-C000-000000000046x0x9x6

    代码实现如下:

    def send_expection_mail(ex):
        """
        当程序中遇到任何问题的时候发送邮件通知到xxx
        :param e:
        :return:
        """
        try:
            outlook = Dispatch("outlook.Application")  # 固定写法
            mail = outlook.CreateItem(0)
            mail.To = 'xxx'
            mail.Subject = 'Exception(AutoTool): please help to check'
            body = ex + '<br><br>' + str(traceback.format_exc())
            mail.BodyFormat = 2  # 2表示HTML format,可以调整格式
            mail.HTMLBody = body
            mail.Send()  # 发送
        except Exception as e:
            e_str = str(e)
            if 'win32com.gen_py.' in e_str:
                folder_name = e_str[e_str.index('_py.') + 4: e_str.index("' ")]
                python_ver = f'{sys.version_info.major}.{sys.version_info.minor}'
                login_user = getpass.getuser()
                path = rf'C:Users{login_user}AppDataLocalTempgen_py{python_ver}{folder_name}'
                shutil.rmtree(path)
                time.sleep(5)  # 暂停5s再继续执行
                send_expection_mail(ex)
    
    
    if __name__ == '__main__':
        try:
            main_code_here
        except Exception as e:
            send_expection_mail(str(e))
  • 相关阅读:
    package.json 笔记
    TypeScript 笔记
    RxJS 笔记
    angular 使用Redux
    ngrx 笔记
    Node 的使用
    imoocLinux环境变量配置文件笔记
    imooc正则表达式学习笔记
    js定时器和linux命令locate
    linux修改PATH环境
  • 原文地址:https://www.cnblogs.com/danvy/p/15325411.html
Copyright © 2011-2022 走看看