账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python调用outlook发邮件附带多个附件
    40
    0

    各位大神,想问一下,现在有个需求就是需要通过调用outlook自动发送邮件,需要带有多个excel表格文件,我只会发带有一个附件的,想问带有多个excel附件的应该怎么发呢?多谢多谢。想再加上一个附件为'C:\Users\Administrator\Desktop\5月\5.1\发邮件\客源明细5.4.xlsx'

    import win32com.client as win32
    import xlrd
     
    outlook = win32.Dispatch('outlook.application')
    mail = outlook.CreateItem(0)
    receivers = ['**;**']
    cc='test02@163.com'+';'+'test03@alibaba.com'
    mail.To = receivers[0]
    mail.cc=cc
    mail.Subject = '附件为明细,请查收!'
    workbook = xlrd.open_workbook('C:\\Users\\Administrator\\Desktop\\报表\\线上指标考核\\数据源\\5月\\5.1\\发邮件\\成交明细5.4.xlsx')
    mySheet = workbook.sheet_by_index(0)
     
    nrows = mySheet.nrows
    content = []
    for i in range(nrows):
        ss = mySheet.row_values(i)
        content.append(ss)
        print(content)
        Truecontent = str(content)
     
    mail.Body = "附件为明细,请查收!"
    mail.Attachments.Add('C:\\Users\\Administrator\\Desktop\\报表\\考核\\数据源\\5月\\5.1\\发邮件\\明细5.4.xlsx')
    mail.Send()
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 孟元辰 普通会员 1楼

      在Python中,我们可以使用python-pyodbc库来连接到Microsoft Exchange Server,并使用pandas库来处理邮件。以下是一个简单的示例,演示如何在邮件中包含多个附件:

      ```python import pyodbc import pandas as pd

      创建数据库连接

      cnxn = pyodbc.connect('DRIVER={Microsoft Access Driver (.mdb, .accdb)};DBQ=C:\Path\To\Database.mdb') cursor = cnxn.cursor()

      获取邮件

      query = ("SELECT * FROM Email WHERE Subject = 'Test Subject'") cursor.execute(query)

      读取邮件数据

      data = cursor.fetchall()

      将邮件数据转换为pandas DataFrame

      df = pd.DataFrame(data, columns=['Recipient', 'Subject', 'Body', 'Attachments'])

      创建一个空列表来存储所有的附件

      attachments = []

      遍历邮件数据

      for row in df.iterrows(): # 获取附件的路径 attachment_path = row['Attachments'][0]

      # 使用pandas的read_excel函数读取Excel文件
      df附件 = pd.read_excel(attachment_path)
      
      # 添加附件到列表中
      attachments.append(df附件)
      

      创建一个新的DataFrame来存储所有的附件

      df附件 = pd.DataFrame(attachments, columns=['Recipient', 'Subject', 'Body', 'Attachments'])

      将DataFrame转换为pandas DataFrame

      df附件 = df附件[['Recipient', 'Subject', 'Body']]

      将DataFrame写入Excel文件

      df附件.to_excel('Attachments.xlsx', index=False) ```

      注意:你需要将上述代码中的数据库连接信息和文件路径替换为你自己的实际值。此外,你需要确保你已经安装了python-pyodbcpandas库。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部