AA中使用VBS發(fā)送郵件

在RPA實(shí)施中况增,郵件的自動(dòng)化是必不可少的一部分內(nèi)容遵岩。通過(guò)郵件,可以實(shí)現(xiàn)人與機(jī)器人之間的信息互通巡通。

一尘执、發(fā)送郵件的方式類型

有關(guān)發(fā)送郵件,有多種多樣的方式宴凉。在開(kāi)始之前誊锭,先了解一下在AA中發(fā)送郵件都有哪些實(shí)現(xiàn)方式。

1. 模擬人工操作

作為RPA本質(zhì)的一種方式就是模擬人的操作弥锄,所以可以通過(guò)AA打開(kāi)郵箱丧靡,創(chuàng)建郵件,編寫郵件內(nèi)容籽暇,添加附件等一系列操作來(lái)完成温治,此方法中,主要使用到AA的Object Clone命令戒悠,腳本如下截圖熬荆。

image

缺點(diǎn): 此方法執(zhí)行效率低,易出錯(cuò)绸狐,針對(duì)于不同版本的outlook或其他郵件客戶端卤恳,需要適配并修改代碼累盗。

2. 自帶Command

在AA中也有相應(yīng)的Command,如 "Send Email"突琳,此命令是通過(guò)SMTP發(fā)送郵件若债,需要在客戶端中配置SMTP服務(wù)器,這里使用163郵箱進(jìn)行示例拆融,配置如下:打開(kāi)AAE客戶端蠢琳,點(diǎn)擊Tools->Options->Email settings

image

腳本如下:

image

image

結(jié)果:

image

缺點(diǎn):

  • 命令中的的Message類型有兩種方式,一種純文本格式镜豹,一種是富文本格式挪凑,所以不能使用HTML的方式來(lái)發(fā)送消息,這種就不能實(shí)現(xiàn)客戶定制化內(nèi)容的需求逛艰。
  • Message中傳入?yún)?shù)躏碳,郵件內(nèi)容只能以文本格式顯示,不能顯示帶格式的內(nèi)容散怖。

3. 利用好BotStore

在Automation Anywhere的Bot應(yīng)用商店中菇绵,有很多封裝好的Task/Metabots,如下圖镇眷,可以通過(guò)搜索找到自己想要的Bots咬最。

image

4. 其他方式

除了以上幾種方式,可以使用其他語(yǔ)言來(lái)實(shí)現(xiàn)郵件發(fā)送的功能欠动。如用C#編寫永乌,然后打包成dll,之后在Metabot中進(jìn)行方法的調(diào)用具伍;或者使用VBS腳本翅雏,可以用腳本調(diào)用outlook發(fā)送,或者使用windows自帶的CDO.Message對(duì)象來(lái)發(fā)送人芽。

二望几、使用VBS發(fā)送SMTP郵件

1. 起因

  • 客戶要求不能使用dll,所以不能使用C#實(shí)現(xiàn)(C#發(fā)送郵件的功能已經(jīng)實(shí)現(xiàn)萤厅,代碼可以在知識(shí)星球中下載橄抹,鏈接:https://t.zsxq.com/zjUZr7i)
  • 模擬人手工操作,執(zhí)行效率比較低惕味,易出錯(cuò)
  • JavaScript實(shí)現(xiàn)發(fā)送郵件楼誓,需要用到外部的引用,也不方便調(diào)試名挥,并且在AA中調(diào)用的時(shí)候會(huì)出現(xiàn)各種奇葩問(wèn)題
  • Botstore中也都是基于C#開(kāi)發(fā)疟羹,封裝成dll的形式,所以也不能使用。

所以最終采用了使用VBS調(diào)用windows自帶的CDO.Message對(duì)象來(lái)發(fā)送SMTP郵件阁猜,這樣可以脫離outlook組件或者相關(guān)dll,也不需要其他外部的依賴蹋艺,只要是windows系統(tǒng)都可以直接進(jìn)行調(diào)試剃袍。

調(diào)試VBS方法:打開(kāi)cmd,運(yùn)行wscript C:\RPA\SendSMTPEmail.vbs進(jìn)行調(diào)試

2. 思路及代碼說(shuō)明

AA中調(diào)用VBS腳本捎谨,在傳入?yún)?shù)時(shí)候民效,如果參數(shù)的值中存在空格,則會(huì)出現(xiàn)傳參錯(cuò)誤的異常(因?yàn)镽un Script命令傳參是以空格作為分隔符的)涛救,也可以參考知識(shí)星球中<AA中調(diào)用VBS畏邢、JS代碼>這篇文章。所以在使用VBS腳本發(fā)送郵件時(shí)检吆,需要使用AA腳本動(dòng)態(tài)生成VBS腳本文件舒萎,然后發(fā)送郵件。

首先編寫并調(diào)試VBS腳本蹭沛,腳本代碼如下:

'##### 調(diào)試方法:打開(kāi)cmd臂寝,運(yùn)行C:\Users\liw>wscript C:\RPA\SendSMTPEmail.vbs進(jìn)行調(diào)試,此方法可以查看在哪一行中的哪個(gè)字符出現(xiàn)問(wèn)題 #####
'##### 需要將文件保存為ANSI格式編碼摊灭,否在郵件中的中文會(huì)以亂碼顯示 ####
'##### 功能:使用CDO.Message發(fā)送郵件 #####
'##### Send Email With SMTP ####


Dim Mail,fso,schema,isHtml,arrAttachment

schema = "http://schemas.microsoft.com/cdo/configuration/"
Set Args=WScript.Arguments
Wscript.Stdout.Writeline Args(0)
Set Mail = CreateObject("CDO.Message")
Set fso = CreateObject("Scripting.FileSystemObject")
With Mail
    .Configuration(schema & "smtpauthenticate")=1
    .Configuration(schema &"sendusing")=2
'設(shè)置SMTP服務(wù)器
    .Configuration(schema &"smtpserver")="smtp.163.com"
'設(shè)置SMTP服務(wù)器端口
    .Configuration(schema &"smtpserverport")=25
'設(shè)置發(fā)件人郵箱
    .Configuration(schema &"sendusername")="x@163.com"
'設(shè)置發(fā)件人郵箱密碼
    .Configuration(schema &"sendpassword")="qqqq"
'設(shè)置SMTP服務(wù)器端口
    .Configuration(schema &"smtpusessl")=True
    .Configuration(schema &"sendlanguagecode")="utf-8"
    .Configuration.Fields.Update
End With
'設(shè)置發(fā)件箱
Mail.From="x@163.com"
'設(shè)置收件人'
Mail.To="x@qq.com"
Mail.Subject="RPA Test 測(cè)試郵件"
' 郵件內(nèi)容設(shè)置 郵件類型(text/html)text文本格式/html網(wǎng)頁(yè)格式
isHtml=TRUE
If isHtml Then
    Mail.HtmlBody=Args(0)
    Mail.HTMLBodyPart.Charset = "utf-8"
Else
    Mail.TextBody=Args(0)
    Mail.BodyPart.Charset = "utf-8"
End If
'Mail.BodyPart.Fields.Item("urn:schemas:mailheader:content-transfer-encoding") = "base64"
'Mail.BodyPart.Fields.Update
'添加所有附件咆贬,參數(shù)為附件列表數(shù)組,單個(gè)文件可使用 arrPath = Split( strPath & "|", "|")傳入路徑帚呼。
arrAttachment="C:\LogonUI.log|C:\ScrubRetValFile.txt|C:\aaa_TouchMeNo_.txt"
If Not IsArray( arrAttachment ) Then arrAttachment = Split( arrAttachment & "|", "|")
For i = 0 To UBound( arrAttachment )
    If fso.FileExists( arrAttachment(i) ) = True Then
        Mail.Addattachment arrAttachment(i)
    End If
Next

'Mail.AddAttachment("C:\LogonUI.log")
'Mail.AddAttachment("C:\ScrubRetValFile.txt")
'Mail.Fields.Update

Mail.Send
Set Mail=Nothing
Set Args=Nothing

在完成VBS代碼調(diào)試之后掏缎,需要將其中的一些變量替換掉,之后編寫AA腳本煤杀,在AA腳本中眷蜈,需要將上面的VBS代碼通過(guò)Log To File的命令寫入到臨時(shí)的文件中,然后使用Run Script命令執(zhí)行臨時(shí)的VBS腳本沈自。(文件可以在知識(shí)星球中下載端蛆,鏈接:https://t.zsxq.com/E2rrFu7)

image

3. AA參數(shù)說(shuō)明

在Metabot中的參數(shù)有如下:

image
參數(shù)名稱 方向 說(shuō)明
in_Attachments 入?yún)?/td> 郵件附件,以豎線分割
in_Body 入?yún)?/td> 郵件正文內(nèi)容
in_Cc 入?yún)?/td> 抄送人地址酥泛,使用";"分割
in_isHtml 入?yún)?/td> 正文內(nèi)容是否是HTML格式(True/False)
in_Subject 入?yún)?/td> 郵件主題
in_To 入?yún)?/td> 收件人地址今豆,使用";"分割
out_Result 出參 發(fā)送郵件的結(jié)果(True/False)
vMailServer None 郵件服務(wù)器地址
vMailServerPort None 郵件服務(wù)器端口
vPassword None 發(fā)件人郵箱密碼
vFrom None 發(fā)件人郵箱地址
vScriptFile None VBS文件名稱
vScriptFolder None VBS文件存放路徑
vSendSMTPEmailTemp None VBS文件臨時(shí)存放的路徑

四、總結(jié)

在AA中發(fā)送郵件的方式多種多樣柔袁,用戶可以依據(jù)自己的實(shí)際情況呆躲,選擇合適的方法以提高開(kāi)發(fā)效率和機(jī)器人的執(zhí)行效率。在選擇使用VBS/JavaScript腳本方式執(zhí)行函數(shù)或者功能時(shí)捶索,可以通過(guò)動(dòng)態(tài)生成腳本的方式來(lái)避免一些傳參的異常插掂。

文中涉及到的代碼都可以在知識(shí)星球中下載,鏈接:https://t.zsxq.com/E2rrFu7

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辅甥,隨后出現(xiàn)的幾起案子酝润,更是在濱河造成了極大的恐慌,老刑警劉巖璃弄,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件要销,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡夏块,警方通過(guò)查閱死者的電腦和手機(jī)疏咐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)脐供,“玉大人浑塞,你說(shuō)我怎么就攤上這事≌海” “怎么了酌壕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)歇由。 經(jīng)常有香客問(wèn)我仅孩,道長(zhǎng),這世上最難降的妖魔是什么印蓖? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任辽慕,我火速辦了婚禮,結(jié)果婚禮上赦肃,老公的妹妹穿的比我還像新娘溅蛉。我一直安慰自己,他們只是感情好他宛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布船侧。 她就那樣靜靜地躺著,像睡著了一般厅各。 火紅的嫁衣襯著肌膚如雪镜撩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天队塘,我揣著相機(jī)與錄音袁梗,去河邊找鬼。 笑死憔古,一個(gè)胖子當(dāng)著我的面吹牛遮怜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸿市,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼锯梁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼即碗!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起陌凳,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤剥懒,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后合敦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體初橘,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年蛤肌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壁却。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片批狱。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡裸准,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赔硫,到底是詐尸還是另有隱情炒俱,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布爪膊,位于F島的核電站权悟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏推盛。R本人自食惡果不足惜峦阁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耘成。 院中可真熱鬧榔昔,春花似錦、人聲如沸瘪菌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)师妙。三九已至诵肛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間默穴,已是汗流浹背怔檩。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蓄诽,地道東北人珠洗。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像若专,于是被迫代替她去往敵國(guó)和親许蓖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容