用python写邮件和附件自动生成发送系统

本文介绍如何使用Python编程实现一个邮件自动发送系统,该系统能够附加Excel文件并将其发送给指定收件人。通过讲解关键代码段,详细阐述了如何配置SMTP服务器、创建邮件对象、附加文件以及发送邮件的全过程。
摘要由CSDN通过智能技术生成
######################################
## 作者: 心如海   724367502@qq.com   ##
##  请勿改动下面代码                 ##
##  2021-3-14        Shenzhen       ##
######################################


import win32com.client as win32
import pythoncom
import xlrd
import calendar
import os
import openpyxl
import win32ui


pythoncom.CoInitialize()


def startoutlook():

    try:
        win32ui.FindWindow(None, "Microsoft Outlook")

    except win32ui.error:
        os.startfile("Outlook")





def send_mail(**kwargs):

    #print(kwargs['p'])
    manager=kwargs['p']['manager']
    mail_to = kwargs['p']['mail_to']
    mail_cc = kwargs['p']['mail_cc']
    reply_date_cn = list(kwargs['p']['reply_date_cn'])[0]
    reply_date_en = list(kwargs['p']['reply_date_en'])[0]
    bl=kwargs['p']['bl']
    default_term_cn = list(kwargs['p']['default_term_cn'])[0]
    default_term_en = list(kwargs['p']['default_term_en'])[0]
    print('使用模板:',bl)

    # 邮件正文中的员工列表
    table_rows=kwargs['p']['table_rows']

    #邮件正文模板
    email_template=kwargs['p']['email_template']

    print('Mail to:',mail_to)
    print('Mail cc:',mail_cc)

    print('收件人:', manager)

    outlook = win32.Dispatch('Outlook.Application')

    reciList = mail_to
    recipients_list =''
    cc_list=''
    mail_item = outlook.CreateItem(0)  # 0: olMailItem
    mail_item.GetInspector
    #mail_item.Display(False)
    orbody=mail_item.HTMLBody  #  先读取outlook签名



    for i in range(len(reciList)):
        #recipients_list+="'"+reciList[i]+"'"+';'
        #print(recipients_list)
        mail_item.Recipients.Add(reciList[i])

    for i in range(len(mail_cc)):
        if len(mail_cc[i])>0:
            cc_list+=mail_cc[i]+';'

    #mail_item.Recipients.Add(recipients_list)
    #

    mail_item.CC=cc_list
    mail_item.Subject = 'Contract Reveiw to '+ manager+' cut of '+ reply_date_en
    print('Subject is :',mail_item.Subject)
    mail_item.BodyFormat = 2  # 2: Html format

    #读取bl 对应的邮件正文模板
    try:
        email_templates = open('./template/'+email_template, 'r', encoding='UTF-8')   #  open email template
        print('读取模板。。。。成功!')
    except Exception as e:
        print('请检查模板是
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值