这个问题与我先前的问题密切相关:Handling COM event cancelation in VBScript
我想编写一个脚本,使用CDO通过我们公司的SMTP服务器发送电子邮件。
首先,我试图为此目的编写一个HTA应用程序,但是它变得很讨人喜欢,以使其足够舒适,以便其他人可以很好地处理它(由于正确的收件人解析)。
因此,现在我尝试使用常规的Outlook-Mail掩码先准备邮件,然后通过Powershell捕获send-item事件,以将其内容提供给我的CDO脚本。我之前通过VBScript尝试过(请参阅上面的链接),但这似乎无法按预期工作。
我对Powershell脚本还很陌生,但是在过去我已经可以使用VBScript中无法使用的功能,因此我希望通过它再次解决我的问题。现在,我的脚本如下所示:
=(ROW()-1)*6+COLUMNS($A:A)
我还没有达到我的期望,因为我根本不知道如何触发该事件。您可以在线上找到大量$WSH = new-Object -ComObject "WScript.Shell"
$Outlook = new-Object -ComObject "Outlook.Application"
$olMailItem = 0
register-objectevent -InputObject $Outlook -EventName "ItemSend"
$MailObject = $Outlook.CreateItem($olMailItem)
$MailObject.Display()
function Outlook_ItemSend([object] $Item, [ref] $Cancel)
{
$Cancel = $TRUE
$WSH.PopUp("Event worked")
return $Null
}
的示例,但是每次它看起来都非常特定于某些特殊的COM对象。到目前为止,我找不到任何示例来注册需要参数的MS-Office COM事件...
答案 0 :(得分:0)
代替使用事件,您可以模态显示消息-调用MailItem.Display
并传递true
作为参数。