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

对接SMTP实现邮件发送功能

背景信息

简单邮件传输协议(SimpleMailTransferProtocol,简称SMTP),是一种提供可靠且有效电子邮件传输的协议。在AstroZero中应用通过与SMTP对接,实现邮件发送功能。如何开通邮箱的SMTP功能,请参见服务编排、BPM、脚本中发送邮件功能不可用

场景描述

使用SMTP给某用户发送邮件。

创建SMTP连接器

  1. 参考创建连接器入口中操作,进入创建连接器页面。
  2. 在左侧列表中,选择“消息通知 > SMTP邮箱服务”,单击“+”。

    图1 新建SMTP邮箱服务连接器

  3. 设置SMTP邮箱服务对接参数,单击“保存”。

    图2 创建SMTP邮箱服务
    • 名称:新建连接器的名称,在系统中的唯一标识。
    • 用户名:邮箱的用户名,如果未修改过,默认为邮箱地址。

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

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

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

      图3 授权密码
    • 发件人:填写发件人的邮箱地址。
    • SMTP服务地址:端口:开通邮箱SMTP功能时,配置的服务器地址和端口号。常用邮箱开启SMTP功能后,发送邮件服务器地址及端口,请参见常用邮箱SMTP服务器地址及端口中操作获取。
    • 描述:新建连接器的描述信息。
    • 打包当前配置:默认为选中,对信息敏感的场景,建议不勾选。

      选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。

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

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

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

      图5 接收邮件内容

在脚本中调用连接器

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

  1. 参考开发一个简单脚本实例中操作,创建一个空白脚本。

    图6 新建一个空白脚本

  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. 检查收件人是否收到邮件。

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

    图7 接收邮件内容

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

在服务编排中调用连接器

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

  1. 参考如何开发服务编排中操作,创建一个服务编排。

    图8 新建一个服务编排

  2. 在服务编排设计页面左侧,“连接器 > 消息通知”,拖拽“EmailBySMTP”图元至画布中。

    图9 拖拽EmailBySMTP图元至画布中

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

    图10 配置基本信息
    • 标签:图元的标签名,用于在页面展示。
    • 名称:图元在系统中的唯一标识,不能和其他图元相同。
    • 描述:图元的描述信息。
    • 连接器:该服务编排使用的连接器的名称。

  4. 设置调用“SMTP”参数。

    图11 配置SMTP连接器
    • 动作:设置为“SendEmailBySMTP”,是系统预置的邮件发送接口。
    • 输入参数:设置接口的输入参数。输入参数。
      • “目标”设置为“address”时:请在“源”中,配置邮件接收地址,可定义为一个输入型变量“"email add1"”。
      • “目标”设置为“subject”时:请在“源”中,配置邮件主题,可定义为一个输入型变量“"email sub1"”。
      • “目标”设置为“body”时:请在“源”中,配置邮件内容,可定义为一个输入型变量“"email body1"”。

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

    • 输出参数:设置接口的输出参数。本例无需设置输出参数。

  5. 连接开始图元和SMTP图元。

    图12 连接图元

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

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

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

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

    图13 邮件发送成功

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

相关文档