SAP IRPA ---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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值