0

我正在用 Python 编写一个打印 Outlook 电子邮件的代码。Python 将使用 win32com.client 读取电子邮件(.msg 文件),然后使用 win32api 打印电子邮件。 如何将电子邮件正文转换为 pdf 文档?这是我到目前为止所拥有的,这段代码允许我打印电子邮件,但如果电子邮件有图像或其他复杂的文本,它就不起作用。我认为pdf格式会更好打印。

body_of_email = r'C:\Users\pythonprinter\Attachments\\' + 'messagebody.txt'
    body_mail = open(body_of_email, 'w')
    body_mail.write(str(message.body))
    body_mail.close()

    if 'print body of email' in str(message):
        win32api.ShellExecute(
                  0,
                  "print",
                  body_of_email,
                  #
                  # If this is None, the default printer will
                  # be used anyway.
                  #
                  '/d:"%s"' % win32print.GetDefaultPrinter(),
                  ".",
                  0
                )
4

1 回答 1

1

我正在尝试和你做同样的事情。

Weel,我正在使用 MSG2PDF ( https://pypi.org/project/msgtopdf/ ) 但你需要跳过一堆圈才能使其工作。我没有在任何其他我试图运行我的代码的机器上工作。无论如何,如果你让它工作,它会完美地将你的 .MSG 转换为 PDF。

跳过你的箍后,你只需要运行subprocess.run("msg2pdf -d" + " " + Directory)将该目录中的每个 MSG 转换为 PDF。

根据您必须转换的 .MSG 的数量,您还可以使用 API,例如 ConvertAPI,每月免费为您提供数百次转换。(https://www.convertapi.com/)。这对我来说不是很有用,因为我每天需要转换大约 200 封电子邮件。真可惜。

于 2021-06-30T14:59:48.873 回答