【问题标题】:Copy Items in Outlook Using PowerShell使用 PowerShell 在 Outlook 中复制项目
【发布时间】:2017-09-19 01:34:08
【问题描述】:

我正在尝试将一些项目从“收件箱”复制到 Outlook 中的“已发送项目\TEMP”。到目前为止,我能够根据主题行获取所需的消息,但后来我尝试复制它们但没有成功。我哪里错了?谢谢!请注意,当我使用 write-host 来检索我正在寻找的项目时,它没有出现任何问题,因此我能够检索主题为“Test”的电子邮件,但不能复制它。

错误信息:

找不到“复制”的重载和参数计数:“1”

代码:

$outlook = New-Object -comobject outlook.application; 

$mapi = $outlook.GetNamespace('MAPI').GetDefaultFolder(6); 

$mapi2 = $outlook.GetNamespace('MAPI').GetDefaultFolder(5); 
$subFolders2 = $mapi.Folders | ? {$_.FolderPath.EndsWith('TEMP')};

$mapi.Items | ForEach-Object {If ($_.Subject -Like '*TEst*'){$_.Copy($subFolders2)}$_.Save()}

【问题讨论】:

    标签: powershell outlook


    【解决方案1】:

    MailItem.Copy 不带任何参数。它返回 MailItem 对象的一个​​实例;然后,您可以调用 MailItem.Move 并将指针传递给目标文件夹。

    【讨论】:

    • 谢谢你,@Dmitry。如果我理解正确,我将无法复制这些项目?有没有办法根据主题将电子邮件项目从一个文件夹复制到另一个文件夹?
    • 当然可以 - 只需调用 Copy(无参数),然后调用 Move(传递 dest. 文件夹)。
    • 哦,我明白了。那么,在 Foreach 中执行 $_.Copy 后,我该如何措辞我的最终副本声明:$mapi.Items | ForEach-Object {If ($_.Subject -Like 'TEst'){$_.Copy}}
    • $_.Copy().Move($subFolders2)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 2016-07-27
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    相关资源
    最近更新 更多