import os import logging from datetime import datetime from pyutl.sendmail import SendMail from pyutl.localenv import localenv localenv.load() HOME_DIR = os.path.dirname(os.path.abspath(__file__)) THIS_MONTH = datetime.now().strftime("%m%Y") FILE = [os.path.join(HOME_DIR, f'viatico_{THIS_MONTH}.xlsx')] LOG_FILE = os.path.join(HOME_DIR, 'perdiem.log') logging.basicConfig(filename=LOG_FILE, filemode='a', format='%(asctime)s %(module)s %(message)s', level=logging.INFO) MAIL_HOST = localenv.get('MAIL_HOST') MAIL_PORT = localenv.get('MAIL_PORT') MAIL_USR = localenv.get('MAIL_USR') MAIL_PASS = localenv.get('MAIL_PASS') OK_DESTINY = localenv.get('OK_DESTINY') ERR_DESTINY = localenv.get('ERR_DESTINY') ok_message = """
Buen Dia
Adjunto Reporte de Viatico.
Gracias & Saludos.
automatic mailer
""" err_message = """ No has depositado el Reporte de Viatico. """ def validate(): auth_info = (MAIL_HOST, MAIL_PORT, MAIL_USR, MAIL_PASS) try: _ = open(FILE[0]) to_address = [OK_DESTINY] message = ok_message return True, auth_info, to_address, message except FileNotFoundError: to_address = [ERR_DESTINY] message = err_message return False, auth_info, to_address, message def main(): try: fe, ai, ta, msg = validate() logging.info(f'validation has been done file exists {fe}') logging.debug(f'authenticate using {ai}') with SendMail(ai) as mail: mail.content(MAIL_USR, ta, f'Solicitud de Viaticos {THIS_MONTH}', msg) if fe: mail.attach(FILE) mail.send() except Exception as e: logging.exception(e) if __name__ == '__main__': main()