Outlook Send Email
场景:
使用邮件模板,比如公司的邮件模板(模板就是会包含一些固定的文本或者图片,如公司信息),然后群发邮件,邮件内容包括主题、正文、附件。
第一步:创建工作流
两个custom控件
第二步:准备好邮件模板
打开outlook,找到自己想要保存的模板,比如我要保存如下的模板
(提示:模板的正文最好预留几个文本,后面讲为什么)
然后点击工具栏里的 文件 -> 另存为,用html的格式保存在桌面上,然后再把桌面上的文件后缀名改为txt
至此,准备工作完毕。
(提示:模板的正文最好预留几个文本,后面讲为什么)
第三步:编写IRPA脚本
Step: GetMailBody
// Describe functionality to be implemented in JavaScript later in the project.
ctx.fso.init(); //FSO 库是用于访问和操作文件系统对象的函数集合。
rootData.myData.templateMailBody = ctx.fso.file.read('C:\\Users\\wenj\\Desktop\\MyMail.txt');
//设置要群发的人员
rootData.myData.sendTo[0] = { Name: "Jim" , Email: "邮箱地址" };
rootData.myData.sendTo[1] = { Name: "Calla" , Email: "地址" };
myData.sendTo为设置的上下文,如下:
Step: SendMail
// Describe functionality to be implemented in JavaScript later in the project.
var attachmentLocation = "C:\\Users\\wenj\\Desktop\\MyMail.txt";
for (var i = 0;i<rootData.myData.sendTo.length;i++){
//替换邮件正文内容
rootData.myData.sMailBody = rootData.myData.templateMailBody.replace('###', rootData.myData.sendTo[i].Name);
ctx.log('Mail body after replacing ####' + rootData.myData.sMailBody);
ctx.log('Completed reading the MailBody.txt');
//发送邮件
try {
//outlook初始化
ctx.outlook.init();
//创建邮件 Creates a new mail with the recipients and Subject.
ctx.outlook.mail.create({
To: rootData.myData.sendTo[i].Email ,
Subject: "Email Template"
})
//邮件正文内容
ctx.outlook.mail.setBodyHtml(0, rootData.myData.sMailBody);
//sends the attachment
//ctx.outlook.mail.attach(0, attachmentLocation);
ctx.outlook.mail.attach( 0, "C:\\Users\\wenj\\Desktop\\MyMail.txt" );
var res = ctx.outlook.mail.send(0);
//ctx.outlook.mail.show(0); //Helps to test without sending the actual mail
ctx.outlook.end();
} catch (err) {
ctx.log("Sending of \"Microsoft Outlook mail in failure ("+err.description+").\"");
try {
ctx.outlook.end();
} catch (ex) {
ctx.log("issue during outlook.end");
return e.error.KO;
}
return e.error.KO;
}
}
代码详解:
//替换邮件正文内容
rootData.myData.sMailBody = rootData.myData.templateMailBody.replace('###', rootData.myData.sendTo[i].Name);
这里的###就是之前让预留的文本,就是为了更加方便的替换正文的内容。
//邮件正文内容
ctx.outlook.mail.setBodyHtml(0, rootData.myData.sMailBody);
这里可以看到,邮件的正文内容是用html设置的,所以之前要保存为html。这样才能使用上邮件模板。
如果不需要邮件模板,更为简单的发送邮件方式如下:
ctx.outlook.mail.create({
To: '地址', //发送到
//Cc :'地址', //抄送
Subject: '主题', //邮件主题
Body: '正文'
});
至此,流程结束。
怎么在邮件正文加图片呢?其实方法就是本文的方法,自己想想吧。提示:base64