对接SMTP发送邮件
简单邮件传输协议(SimpleMailTransferProtocol,简称SMTP),是一种提供可靠且有效电子邮件传输的协议。在AstroZero中应用通过与SMTP对接,实现邮件发送功能。
创建SMTP连接器
- 参考登录AstroZero新版应用设计器中操作,进入应用设计器。
- 在左侧导航栏中,选择“集成”。
- 单击“连接器”中的“ 连接器实例”,进入连接器实例页面。
- 在左侧导航栏中,选择“消息通知 > SMTP邮箱服务”。
- 在右侧页面单击“+”,设置SMTP邮箱服务对接参数。
图1 创建SMTP邮箱服务连接器
表1 新建SMTP邮箱服务连接器参数说明 参数
说明
名称
新建连接器的名称。命名要求如下:
- 长度不能超过64个字符,包括前缀命名空间的长度。
说明:
名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。
- 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。
SMTP服务地址:端口
开通邮箱SMTP功能时,配置的服务器地址和端口号。常用邮箱开启SMTP功能后,发送邮件服务器地址及端口,请参见常用邮箱SMTP服务器地址及端口中操作获取。
用户名
邮箱的用户名,如果未修改过,默认为邮箱地址。
示例:以网易163邮箱为例,此处可配置为example@163.com。
密码
邮箱开通SMTP功能时,生成的授权密码,是一段随机字符串。
示例:配置为163邮箱开通SMTP功能时生成的授权密码,如图2所示。
发件人邮箱地址
填写发件人的邮箱地址。
发件人显示名
发件人名称,按需进行设置。
描述
根据实际需求,输入连接器的描述信息。
取值范围:1~255个字符。
打包当前配置
选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。如果不勾选,则内容不会打包发布到运行环境,此时需要您参考管理应用中的连接器中操作,创建对应的连接器。
默认为选中,对信息敏感的场景,建议不勾选。
- 长度不能超过64个字符,包括前缀命名空间的长度。
- (可选)测试是否能发送邮件。
- 在连接器详情页面,单击测试中的“发送邮件”。
- 输入收件人、主题和邮件内容,单击“发送”。
图3 发送邮件
收件人可收到邮件,表示测试成功,如图4。
在脚本中调用连接器
在脚本中,调用已创建的连接器,实现与SMTP的对接。
- 参考创建空白AstroZero脚本中操作,创建一个空白脚本。
- 在脚本编辑器中,输入如下代码。
// 导入连接器 import * as connector from 'connector'; //新建SMTP邮件连接器,第一个参数固定是emailsmtp,第二个参数是连接器的名称 let client = connector.newClient("emailsmtp","命名空间__smtp01"); //构建请求消息头,包括收件人地址、邮件主题、邮件正文(主题和正文不能同时为空) //按内容发送 let req ={"address":"test@example.com","subject":"SMTP功能验证-事件","body":"使用SMTP发送邮件"}; //按模板发送,如果有template模板参数,则主题和正文配置无效,按邮件模板中的内容发送 //let req={"address":"test@example.com","template":"smtptt1."} //发送邮件,其中第一个参数不用填写,第二个参数为消息体 let resp = client.invoke("",req);
其中,connector.newClient中“命名空间__smtp01”为连接器的名称,“address”为收件人,“subject”为主题,“body”为邮件内容。
- 单击脚本编辑器页面上方的,保存脚本。
- 保存成功后,单击,执行脚本。
- 2中已设置入参,故此处不需要再设置,直接单击测试窗口右上角的。
- 检查收件人是否收到邮件。
收到邮件,表示成功调用连接器,如图5。
- 单击脚本编辑器页面上方的,启用脚本。
在服务编排中调用连接器
在服务编排中,调用已创建的连接器,实现与SMTP的对接。
- 参考创建空白AstroZero服务编排中操作,创建一个服务编排。
- 在服务编排设计页面左侧,“连接器 > 消息通知”,拖拽“EmailBySMTP”图元至画布中。
图6 拖拽EmailBySMTP图元至画布中
- 单击,设置基本信息。
图7 配置基本信息
表2 EmailBySMTP图元基本信息参数说明 参数
说明
标签
EmailBySMTP图元的标签名,用于在页面显示。
名称
EmailBySMTP图元的名称,名称是图元在系统中的唯一标识。命名要求如下:
- 长度不能超过80个字符。
- 必须以英文字母开头,只能由英文字母,数字或下划线组成,且不能以下划线结尾。
描述
EmailBySMTP图元的描述信息,按需进行设置。
接器
在下拉框中,选择待使用连接器的名称,即创建SMTP连接器中创建连接器的名称。
- 单击,设置调用SMTP参数。
图8 配置SMTP连接器
表3 EmailBySMTP图元连接器参数说明 参数
说明
动作
设置为“SendEmailBySMTP”,是系统预置的邮件发送接口。
输入参数
设置接口的输入参数。
- “目标”设置为“address”时:请在“源”中,配置邮件接收地址,可定义为一个输入型变量“"email add1"”。
- “目标”设置为“subject”时:请在“源”中,配置邮件主题,可定义为一个输入型变量“"email sub1"”。
- “目标”设置为“body”时:请在“源”中,配置邮件内容,可定义为一个输入型变量“"email body1"”。
说明:使用模板发送邮件时,只需要填入邮件模板(template)名,不需要填写主题和内容。
输出参数
设置接口的输出参数,本示例无需设置输出参数。
- 连接开始和SMTP图元。
图9 连接图元
- 单击页面上方的,保存服务编排。
- 保存成功后,单击,运行服务编排。
- 设置输入参数,单击“运行”。
输入参数样例如下:
{ "address": "test@example.com", "subject": "SMTP连接器", "body": "在服务编排中调用SMTP连接器" }
样例中,address为收件人,subject为邮件主题,body为邮件内容。address为必填字段,邮件主题和邮件内容不能同时为空。
显示下图信息,表明邮件发送成功。
图10 邮件发送成功
- 单击服务编排设计页面上方的,启用服务编排。