gpt4 book ai didi

powershell - 将 Outlook 电子邮件导出或打印为 PDF

转载 作者:行者123 更新时间:2023-12-04 12:17:21 28 4
gpt4 key购买 nike

我正在使用 PowerShell 循环浏览 Outlook 中的指定文件夹并将附件保存在树状结构中。这很神奇,但现在管理层要求将电子邮件本身也保存为 PDF。我找到了 PrintOut对象中的方法,但会提示输入文件名。我一直无法弄清楚要传递给它什么才能让它自动保存到特定的文件名。我查看了 MSDN 页面,它对我目前的水平来说有点高。

我正在使用outlook.application 的com 对象。

除了将所有电子邮件保存到临时文件并使用第三方方法之外,是否有可以传递给 PrintOut 的参数?或者另一种方法来实现这一点?

这是获取电子邮件的代码的基础。我遍历 $Emails

$Outlook = New-Object -comobject outlook.application
$Connection = $Outlook.GetNamespace("MAPI")
#Prompt which folder to process
$Folder = $Connection.PickFolder()
$Outlook_Folder_Path = ($Folder.FullFolderPath).Split("\",4)[3]
$BaseFolder += $Outlook_Folder_Path + "\"
$Emails = $Folder.Items

最佳答案

看起来没有内置方法,但如果你愿意使用第三方二进制文件,wkhtmltopdf可以使用。

  • 获取 precompiled binary (使用 MinGW 32 位以获得最大兼容性)。
  • 使用 7Zip 安装或解压缩安装程序并复制 wkhtmltopdf.exe到您的脚本目录。它没有外部依赖项,可以与您的脚本一起重新分发,因此您不必在所有 PC 上安装 PDF 打印机。
  • 使用 HTMLBody MailItem 的属性(property)用于 PDF 转换的脚本中的对象。

  • 下面是一个例子:
    # Get path to wkhtmltopdf.exe
    $ExePath = Join-Path -Path (
    Split-Path -Path $Script:MyInvocation.MyCommand.Path
    ) -ChildPath 'wkhtmltopdf.exe'

    # Set PDF path
    $OutFile = Join-Path -Path 'c:\path\to\emails' -ChildPath ($Email.Subject + '.pdf')

    # Convert HTML string to PDF file
    $ret = $Email.HTMLBody | & $ExePath @('--quiet', '-', $OutFile) 2>&1

    # Check for errors
    if ($LASTEXITCODE) {
    Write-Error $ret
    }

    请注意,我没有使用 Outlook 的经验并使用 MSDN 获取对象的相关属性,因此代码可能需要进行一些调整。

    关于powershell - 将 Outlook 电子邮件导出或打印为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43078789/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com