利用python实现outlook自动发邮件

import random
import pandas as pd
import numpy as np
# 在项目中注册模块才能使用client
import win32com.client as win32
import pywintypes
from datetime import datetime
import openpyxl
import time
from tqdm import tqdm


# 读取名单
class Mails():
    def __int__(self):
        self.a = ''

    def get_send_info(self,To_name,number,money):
        text = 
        f'''
        '''
        return text

    def send_email(self,to_email,cc_email,To_name,number,money):
        outlook = win32.Dispatch('outlook.application')
        mail = outlook.CreateItem(0)
        mail.To = to_email
        mail.CC = cc_email
        # 邮件主题
        mail.Subject = f'关于{datetime.now().year}年{datetime.now().month}月
        # 表示使用html发送邮件
        mail.BodyFormat = 2
        mail.HTMLBody = self.get_send_info(To_name,number,money)
        mail.Send()

    def run(self):
        info = pd.read_excel('send_email_.xlsx')
        with open('logging.txt','w',encoding='utf-8-sig') as f:
            # 进度条
            pbar = tqdm(range(len(info)))
            for i in pbar:
                pbar.set_description("Processing %s" % i)
                try:
                   To_name, number, money, to_email, cc_email = info.iloc[i][0], info.iloc[i][3], info.iloc[i][4],\
                                                             info.iloc[i][1], info.iloc[i][2]
                   self.send_email(to_email, cc_email, To_name, number, money)
                    # print(f'{To_name}-发送成功')
                   f.write(f'{To_name}-发送成功')
                   f.write('\n')
                except Exception as e:
                    # print(f'{To_name}-发送失败')
                    f.write(f'{To_name}-发送失败')
                    f.write('\n')
                finally:
                    time.sleep(random.randint(1, 3))

if __name__ == '__main__':
    mail = Mails()
    mail.run()
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值