更新时间:2024-09-06 GMT+08:00
分享

对接SMTP发送邮件

简单邮件传输协议(SimpleMailTransferProtocol,简称SMTP),是一种提供可靠且有效电子邮件传输的协议。在AstroZero中应用通过与SMTP对接,实现邮件发送功能。

创建SMTP连接器

  1. 参考登录AstroZero新版应用设计器中操作,进入应用设计器。
  2. 在左侧导航栏中,选择“集成”
  3. 单击“连接器”中的“ 连接器实例”,进入连接器实例页面。
  4. 在左侧导航栏中,选择“消息通知 > SMTP邮箱服务”。
  5. 在右侧页面单击“+”,设置SMTP邮箱服务对接参数。

    图1 创建SMTP邮箱服务连接器
    表1 新建SMTP邮箱服务连接器参数说明

    参数

    说明

    名称

    新建连接器的名称。命名要求如下:

    • 长度不能超过64个字符,包括前缀命名空间的长度。
      说明:

      名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。

    • 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。

    SMTP服务地址:端口

    开通邮箱SMTP功能时,配置的服务器地址和端口号。常用邮箱开启SMTP功能后,发送邮件服务器地址及端口,请参见常用邮箱SMTP服务器地址及端口中操作获取。

    用户名

    邮箱的用户名,如果未修改过,默认为邮箱地址。

    示例:以网易163邮箱为例,此处可配置为example@163.com。

    密码

    邮箱开通SMTP功能时,生成的授权密码,是一段随机字符串。

    示例:配置为163邮箱开通SMTP功能时生成的授权密码,如图2所示。

    发件人邮箱地址

    填写发件人的邮箱地址。

    发件人显示名

    发件人名称,按需进行设置。

    描述

    根据实际需求,输入连接器的描述信息。

    取值范围:1~255个字符。

    打包当前配置

    选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。如果不勾选,则内容不会打包发布到运行环境,此时需要您参考管理应用中的连接器中操作,创建对应的连接器。

    默认为选中,对信息敏感的场景,建议不勾选。

    图2 授权密码

  6. (可选)测试是否能发送邮件。

    1. 在连接器详情页面,单击测试中的“发送邮件”。
    2. 输入收件人、主题和邮件内容,单击“发送”。
      图3 发送邮件

      收件人可收到邮件,表示测试成功,如图4

      图4 接收邮件内容

在脚本中调用连接器

在脚本中,调用已创建的连接器,实现与SMTP的对接。

  1. 参考创建空白AstroZero脚本中操作,创建一个空白脚本。
  2. 在脚本编辑器中,输入如下代码。

    // 导入连接器
    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”为邮件内容。

  3. 单击脚本编辑器页面上方的,保存脚本。
  4. 保存成功后,单击,执行脚本。
  5. 2中已设置入参,故此处不需要再设置,直接单击测试窗口右上角的
  6. 检查收件人是否收到邮件。

    收到邮件,表示成功调用连接器,如图5

    图5 接收邮件内容

  7. 单击脚本编辑器页面上方的,启用脚本。

在服务编排中调用连接器

在服务编排中,调用已创建的连接器,实现与SMTP的对接。

  1. 参考创建空白AstroZero服务编排中操作,创建一个服务编排。
  2. 在服务编排设计页面左侧,“连接器 > 消息通知”,拖拽“EmailBySMTP”图元至画布中。

    图6 拖拽EmailBySMTP图元至画布中

  3. 单击,设置基本信息。

    图7 配置基本信息
    表2 EmailBySMTP图元基本信息参数说明

    参数

    说明

    标签

    EmailBySMTP图元的标签名,用于在页面显示。

    名称

    EmailBySMTP图元的名称,名称是图元在系统中的唯一标识。命名要求如下:

    • 长度不能超过80个字符。
    • 必须以英文字母开头,只能由英文字母,数字或下划线组成,且不能以下划线结尾。

    描述

    EmailBySMTP图元的描述信息,按需进行设置。

    接器

    在下拉框中,选择待使用连接器的名称,即创建SMTP连接器中创建连接器的名称。

  4. 单击,设置调用SMTP参数。

    图8 配置SMTP连接器
    表3 EmailBySMTP图元连接器参数说明

    参数

    说明

    动作

    设置为“SendEmailBySMTP”,是系统预置的邮件发送接口。

    输入参数

    设置接口的输入参数。

    • “目标”设置为“address”时:请在“源”中,配置邮件接收地址,可定义为一个输入型变量“"email add1"”。
    • “目标”设置为“subject”时:请在“源”中,配置邮件主题,可定义为一个输入型变量“"email sub1"”。
    • “目标”设置为“body”时:请在“源”中,配置邮件内容,可定义为一个输入型变量“"email body1"”。
    说明:

    使用模板发送邮件时,只需要填入邮件模板(template)名,不需要填写主题和内容。

    输出参数

    设置接口的输出参数,本示例无需设置输出参数。

  5. 连接开始和SMTP图元。

    图9 连接图元

  6. 单击页面上方的,保存服务编排。
  7. 保存成功后,单击,运行服务编排。
  8. 设置输入参数,单击“运行”

    输入参数样例如下:
    {
        "address": "test@example.com",
        "subject": "SMTP连接器",
        "body": "在服务编排中调用SMTP连接器"
    }

    样例中,address为收件人,subject为邮件主题,body为邮件内容。address为必填字段,邮件主题和邮件内容不能同时为空。

    显示下图信息,表明邮件发送成功。

    图10 邮件发送成功

  9. 单击服务编排设计页面上方的,启用服务编排。

相关文档