【Python】| 邮件发送 & Log写入

发送邮件

Outlook发送邮件

根据传入的名字,去和配置文件Outlook.xlsx进行邮箱匹配

import win32com.client as win32
import pandas as pd


def send_mail(DevName): 
    
    Accounts=pd.read_excel(r"./Outlook.xlsx")
    Accounts=Accounts.loc[Accounts["Name"]==DevName]
    send_account=Accounts["Account"].values
    
    outlook_app = win32.Dispatch('Outlook.Application')

    
    mail_item = outlook_app.CreateItem(0)   # 0: olMailItem

 
    mail_item.Recipients.Add(send_account)
    mail_item.Subject = 'BI Migration Tools'
    mail_item.Attachments.Add('./对比结果.xlsx')
    mail_item.BodyFormat = 2   # 2: Html format
    mail_item.HTMLBody = '''
        
        

BI Migration Tools


Dear,

Attached is the test result file generated by BI Migration Tools.

Please do not reply,thanks.

Regards
'''
mail_item.Send() DevName="Kyle" send_mail(DevName)

写log

  • 查看那步报错
def WriteLog(content):
    import time
    f = open('./Log.txt',mode='a+')
    f.write('{time} {content}\n'.format(time=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),content=content))
    f.close()  
    print(content)
    
WriteLog("开始...")
WriteLog("进行中...")
WriteLog("结束...")
  • 查看具体的报错信息
class valueType:
    def __init__(self):
        pass
    def toLog(self, input_message):
        input_message = int(input_message) + 123
        print(input_message)

# 日志模块
import logging
import traceback
# 引入日志
logging.basicConfig(filename='log.txt',
                    level=logging.DEBUG,
                    filemode='a+',
                    format='[%(asctime)s] [%(levelname)s] >>> \n%(message)s',
                    datefmt='%Y-%m-%d %I:%M:%S')
try:
    valueType = valueType()
    valueType.toLog("这是一个测试")
except Exception as e:
    traceback.print_exc() # 打印到控制台
    logging.error(traceback.format_exc())

你可能感兴趣的:(Python,python,邮件,outlook,写log信息)