UiPath 调用PowerShell邮件模板

UiPath直接操作邮件模板,我还没解决email body读取的问题,selector取不到ID,有大神懂的话,请指导一下。

所以,用Powershell处理的邮件模板问题,调试通过,代码在后面,现在就调试中遇到的坑写一下:

1.Uipath调用Powershell 参数名称一定要一摸一样;

2.如果Uipath调用PS时报错,报错的内容可能跟实际的错误有区别,代码不长的话,我都是用最笨的方法,一句一句的写出来调试,像今天这个邮件处理模板的,第一条记录$olApp = New-Object -ComObject Outlook.Application;就会报错,这就特别奇葩,还有千万年不出错的[System.GC]::Collect()释放,也会出错,究其原因,都是这些语句的错误。肯定是上面 或者附近的语句有错误。

ps:$olApp = New-Object -ComObject Outlook.Application;报错的原因是 邮件没关闭,我开着自己的工作邮件在开发的,关闭有就解决了。

3.在Uipath 与Ps联合单元测试通过后,放入项目中,又是报错不管,调试最后,发现传入的参数,字符串前面有空格,除去后运行正常。踩坑的同学注意了。


param(
    [String]$keycontactperson,
    [String]$Incharge,
    [String]$TicketNo,
    [String]$Requestor,
    [String]$ChargeableTo,
    [String]$DateToCease,
    [String]$EmailTemplateFilePath,
    [String]$EmailSaveAsFilePath,
    [String]$AttachFile
)

Add-Type -assembly “Microsoft.Office.Interop.Outlook”
$olApp = New-Object -ComObject Outlook.Application;
$olMailItem = $olApp.CreateItemFromTemplate($EmailTemplateFilePath);

$olMailItem.To = $keycontactperson;
$olMailItem.Cc = $Incharge + ";" +$Requestor;
$olMailItem.Subject = "Please suggest if you would like to close confirmation ticket " +$TicketNo;
$olMailItem.BodyFormat=3;
$EmailContent=$olMailItem.HTMLBody;

$EmailContent = $EmailContent.Replace("Dear xxx" ,"Dear " + $keycontactperson);
$EmailContent = $EmailContent.Replace("the ticket xxxxxxxxxxx " ,$TicketNo);
$EmailContent = $EmailContent.Replace("(Engagement number: xxxxx" ,"(Engagement number: " + $ChargeableTo);
$EmailContent = $EmailContent.Replace("chasing date (xxxx-xx-xx) as " ,"chasing date ("+ $DateToCease +") as ");
$EmailContent = $EmailContent.Replace("First name Last name" ,"Dear Amanda");
$EmailContent = $EmailContent.Replace("+86 (757) 8168 XXXX," ,"Dear Amanda");
$EmailContent = $EmailContent.Replace("[email protected]" ,"Dear Amanda");
$olMailItem.HTMLBody=$EmailContent;

$olMailItem.Attachments.Add($AttachFile);
$olMailItem.SaveAs($EmailSaveAsFilePath);
[System.GC]::Collect()
<#
$att = new-object Net.Mail.Attachment($AttachFile)
$olMailItem.Attachments.Add($att)
$att.Dispose()

foreach($user in $Email){
$mail.Recipients.Add($user)
}
#>


 

猜你喜欢

转载自blog.csdn.net/Alvin_CC/article/details/85885478
今日推荐