这里介绍下CPI的邮件发送配置。CPI自己就有封装好的邮件适配器对象,使用这个对象填入邮箱的SMTP信息与发件人,收件人和邮件标题和正文等内容。等待调用时就会自动发送邮件了。这期介绍下如何使用office邮箱的配置。
CPI邮件配置
一、创建邮箱iFlow
1.新建邮件iFlow
在CPI的Package中创建CPI异常时自动发送邮件提醒运维人员的iFlow。
2.声明iFlow的调用地址
如果想要在其他的CPI中调用该邮件发送功能,则你还需要像创建其他CPI接口一样,为该iFlow声明一个Address。以便其他CPI在其的Address中调用该iFlow。有点绕口,简单来说我们在创建时写的YTEST_SAP_ERROR_MAIL这个是我们给他定义的名称,但是这个名称无法在其他CPI中使用。如果要在其他CPI中使用则需要通过下面再Address中定义的接口名称。
从Sender出发,拉出适配器指向箭头。选择适配器类型为ProcessDirect。然后打开Connection页签在Address输入框中输入该iFlow的地址。
3.设置发送邮件的适配器与连接属性
(1)设置连接器与属性
从End出发拉出箭头指向Receiver对象,然后选择适配器类型为Mail。请注意常规界面的传输协议是默认的SMTP。所以在Connection页签中的Address中填入office邮箱的Host与端口号(smtp.office365.com:587)。设置的属性内容如下:
- Proxy Type:Internet(默认)
- **Timeout (in ms)**:30000(默认)
- Protection:STARTTLS Mandatory(默认)
- Authentication:Plain User/Password
- Encrypted User/Password:加密的用户/密码
- Plain User/Password:普通用户/密码
- OAuth2 Authorization Code:OAuth2授权代码
- None:无
- Credential Name:可理解为登录office邮箱的账号角色。
(2)注意事项
此处有个注意事项,那就是如果你选择Proxy Type为Internet时,SMTP的端口号只能是587和465。
以下内容摘自:SAP Business Technology Platform (BTP)的架构理解
对于只能使用这两个端口我有以下猜想,不保证正确,欢迎指正。之前我在查找BTP相关的资料时有看到说SAP为了自家的云产品能更好的互联,单独开发的一个进行身份认证的服务。被称之为Identity Authentication Tenant,简称是IAS - Identity Authentication Service。该服务严格意义上并不属于BTP上的服务。它可以使你将常见的微软认证数据接入IAS,利用现有用户数据和权限,实现SAP云产品的无缝登陆,你也可以在上边进行从0到1的用户创建填充,重度依赖IAS实现SAP云产品的用户管理。
从上边的架构图中可以看到,IAS在用户通过浏览器登陆BTP上的服务的时候起到非常关键的鉴权作用,只有该用户有足够权限才能访问BTP上的指定服务,要么在BTP上进行开发工作,要么本身就是终端用户使用BTP上暴露的服务。结合方法也不困难,SAP社区论坛有不少资料,其最直接的反应就是在上边BTP主控室的截图左侧可以看到Trust Configuration中多了一个自创建的IAS而不仅仅是default的了。
(3)Credential Name
这个角色的配置位置在CPI的监控器–>安全材料中。
此处的用户就是登录office邮箱的邮箱地址(账号)。
4.设置邮箱的Processing
在这里可以设置发送邮件的发件人和接收邮件收件人邮箱地址,此处之外还可以设置邮件的主题、和正文部分。
如果收件人有多个,请按照**邮箱1;邮箱2;邮箱3…的方式串联收件人邮箱地址。在主题和正文中的{}**部分是调用邮件接口时的动态参数值。可以通过内容转换器定义变量和变量值然后传入该iFlow。
5.发布iFlow接口
二、设置CPI的异常处理
当接口在CPI端发生异常时,是不会将数据推送到SAP端的。这时候如果不通过CPI进行排查就无法定位到问题,所以客户需要我们设置一个异常处理。当CPI接口处理失败时,向运维人员的邮箱发送异常邮件。这样可以就可以定位到CPI出现了异常。下面介绍下如何在CPI的接口中设置异常处理并发送异常邮件。
以之前在《通过Web Service发布CPI接口》中创建的CPI接口为例子。
1.创建异常子流程
这里添加异常子流程有个注意事项,创建的异常子流程结束的节点是接口结束节点End。我们需求将其修改为异常结束节点Error End。不然会将邮件的内容给对方系统发送过去。
设置接口结束节点返回的报文内容如下:
2.添加内容修正符
在Error Start1之后创建一个内容修正符,在其中添加上需要通过邮件发送的变量值。
3.添加请求回复组件
在修正符之后添加一个请求回复组件,然后使用ProcessDirect适配器调用邮件发送的iFlow。设置好适配器之后在适配器的Connection页签中的Address中的输入框中填入之前我们为邮件iFlow声明的CPI端的名称:**/Demo/CPIErrorMailSend**。
4.部署修改后的接口
添加完成上面的异常子流程全部步骤之后部署接口即可,点击右上角的部署按钮,等待部署状态为已部署即可。
三、测试邮件推送
1.发送异常请求
使用Postman测试工具向CPI发送会产生异常的请求内容。可以看到
2.监控器截图
3.邮件效果截图