如何在python中复制整个outlook邮件内容

2024-09-30 18:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个试图在python脚本中实现以下目标的初学者:有人能在这方面帮助我吗?我被困在第二步

  1. 输入:本地保存的outlook邮件(*.msg)路径
  2. 转到路径并复制邮件的整个正文
  3. 创建新邮件并将内容粘贴到新邮件中
  4. 手动发送

    import win32com.client as win32  

    ########### Functions
    def getMailBody(msgFile):
        start_text = "<html>"
        end_text = "</html>"
        with open(msgFile) as f:
            data=f.read()
        return data[data.find(start_text):data.find(end_text)+len(end_text)]

    def releaseMail(body, subject, recipient):
        outlook = win32.Dispatch('outlook.application')
        mail = outlook.CreateItem(0)
        mail.To = recipient
        mail.Subject = subject
        mail.HtmlBody = body
        mail.Display(True)

    ############### Main ################
    msgFile = "C:\\RELM\\testMsg.msg"
    mailTo = "mymail@myserver.com"
    mailSubject = "Test message"
    mailBody = getMailBody(msgFile)
    releaseMail(mailBody, mailSubject, mailRecipient)

…`

下面是我得到的错误

文件“C:\Python\Python38-32\lib\encodings\cp1252.py”,第23行,解码 返回编解码器.charmap\u解码(输入、自身错误、解码表)[0] UnicodeDecodeError:“charmap”编解码器无法对位置924中的字节0x81进行解码:字符映射为未定义


Tags: text路径datadefas邮件mailmsg
1条回答
网友
1楼 · 发布于 2024-09-30 18:18:48

我认为这应该可行,但我目前无法测试:

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
def getMailBody(msgFile):
        msgText = outlook.OpenSharedItem(msgFile)
        return msgText.Body

相关问题 更多 >