【问题标题】:Send mail with current date as subject发送以当前日期为主题的邮件
【发布时间】:2019-06-27 13:47:12
【问题描述】:

我正在使用 Win32com.client 模块在新的 Outlook 窗口中向收件人发送带有附件的邮件,但如果我使用调度程序发送邮件,我无法每天更新邮件主题的当前日期。我需要在主题行中显示发送报告的日期和时间

import win32com.client
from win32com.client import Dispatch

olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "Test report for"
newMail.HTMLBody = "This is for testing"
attachment = "C:\\Users\\ibm\\test.xls"
newMail.Attachments.Add(attachment)
newMail.To  = "ibm@gmail.com"
newMail.Send()
print('Report mail sent Successfully!!!')

实际结果: 测试报告

预期结果: 2019 年 6 月 27 日测试报告

【问题讨论】:

    标签: python python-3.x win32com


    【解决方案1】:

    替换这个,

    newMail.Subject = "Test report for"
    

    与,

    newMail.Subject = "Test report for" + str(today.strftime("%d/%m/%y"))
    

    先做这个,

    import datetime
    today = datetime.date.today()
    

    【讨论】:

      【解决方案2】:
      from datetime import date
      import win32com.client
      from win32com.client import Dispatch
      
      today = date.today()
      d1 = today.strftime("%d/%m/%Y")
      olMailItem = 0x0
      obj = win32com.client.Dispatch("Outlook.Application")
      newMail = obj.CreateItem(olMailItem)
      newMail.Subject = "Test report for" + d1
      newMail.HTMLBody = "This is for testing"
      attachment = "C:\\Users\\ibm\\test.xls"
      newMail.Attachments.Add(attachment)
      newMail.To  = "ibm@gmail.com"
      newMail.Send()
      print('Report mail sent Successfully!!!')
      

      首先从 datetime 模块导入日期,然后使用 strftime() 函数获取所需格式的日期。

      【讨论】:

        猜你喜欢
        • 2016-07-25
        • 1970-01-01
        • 2016-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-30
        相关资源
        最近更新 更多