
# 对接SMTP发送邮件
简单邮件传输协议（Simple Mail Transfer Protocol，简称SMTP），是一种提供可靠且有效电子邮件传输的协议。在华为云Astro轻应用中应用通过与SMTP对接，实现邮件发送功能。
 #### 创建SMTP连接器
1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，进入应用设计器。
2. 在左侧导航栏中，选择"集成"。
3. 单击"连接器"中的" 连接器实例"，进入连接器实例页面。
4. 在左侧导航栏中，选择"消息通知 \> SMTP邮箱服务"。
5. 在右侧页面单击"+"，设置SMTP邮箱服务对接参数。 
   图1创建SMTP邮箱服务连接器   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936100417.png "点击放大")
   表1新建SMTP邮箱服务连接器参数说明 
   | 参数          | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 名称          | 新建连接器的名称。命名要求如下： - 长度不能超过64个字符，包括前缀命名空间的长度。 名称前的内容为命名空间，在华为云Astro轻应用中为了避免不同租户间数据的重名，租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间，创建后不支持修改。   - 必须以英文字母开头，只能由英文字母、数字或单下划线组成，且不能以下划线结尾。   |
   | SMTP服务地址:端口 | 开通邮箱SMTP功能时，配置的服务器地址和端口号。常用邮箱开启SMTP功能后，发送邮件服务器地址及端口，请参见[常用邮箱SMTP服务器地址及端口](https://support.huaweicloud.com/astrozero_faq/astrozero_faq_0128.html)中操作获取。                                                                                                                                                                                                                                                                                                              |
   | 用户名         | 邮箱的用户名，如果未修改过，默认为邮箱地址。 示例：以网易163邮箱为例，此处可配置为example@163.com。                                                                                                                                                                                                                                                                                                                                                                      |
   | 密码          | 邮箱开通SMTP功能时，生成的授权密码，是一段随机字符串。                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 发件人邮箱地址     | 填写发件人的邮箱地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 发件人显示名      | 发件人名称，按需进行设置。                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 描述          | 根据实际需求，输入连接器的描述信息。 取值范围：1\~255个字符。                                                                                                                                                                                                                                                                                                                                                                                              |
   | 打包当前配置      | 选中该选项后，应用打包时会将当前配置的连接器信息一并打出。例如，如果应用包发布到运行环境，当前配置默认会被同步到运行环境中。如果不勾选，则内容不会打包发布到运行环境，此时需要您参考[管理应用中的连接器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_06_2020.html)中操作，创建对应的连接器。 默认为选中，对信息敏感的场景，建议不勾选。                                                                                                                                                                                                              |
      
   
   
6. （可选）测试是否能发送邮件。 
   1. 在连接器详情页面，单击测试中的"发送邮件"。
   
   2. 输入收件人、主题和邮件内容，单击"发送"。
      图2发送邮件   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001954680133.png "点击放大")
      收件人可收到邮件，表示测试成功，如[图3]。
      图3接收邮件内容   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894140796.png "点击放大") 
   
   
   
   
 
#### 在脚本中调用连接器
在脚本中，调用已创建的连接器，实现与SMTP的对接。
1. 参考[创建空白华为云Astro轻应用脚本](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9162.html)中操作，创建一个空白脚本。
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. 单击脚本编辑器页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894140820.png)，保存脚本。
4. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894140728.png)，执行脚本。
5. [2]中已设置入参，故此处不需要再设置，直接单击测试窗口右上角的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936100341.png)。
6. 检查收件人是否收到邮件。 
   收到邮件，表示成功调用连接器，如[图4]。
   图4接收邮件内容   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894300680.png "点击放大")
   
   
7. 单击脚本编辑器页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894300656.png)，启用脚本。
 
#### 在服务编排中调用连接器
在服务编排中，调用已创建的连接器，实现与SMTP的对接。
1. 参考[创建空白华为云Astro轻应用服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9131.html)中操作，创建一个服务编排。
2. 在服务编排设计页面左侧，"连接器 \> 消息通知"，拖拽"EmailBySMTP"图元至画布中。 
   图5拖拽EmailBySMTP图元至画布中   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936100429.png "点击放大")
   
   
3. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894300728.png)，设置基本信息。
   
   图6配置基本信息   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002099053794.png "点击放大")
   表2EmailBySMTP图元基本信息参数说明 
   | 参数 | 说明                                                                                                                                                                                                                                                                                                                              |
   |:---|:---|
   | 标签 | EmailBySMTP图元的标签名，用于在页面显示。                                                                                                                                                                                                                                                                                                      |
   | 名称 | EmailBySMTP图元的名称，名称是图元在系统中的唯一标识。命名要求如下： - 长度不能超过80个字符。  - 必须以英文字母开头，只能由英文字母，数字或下划线组成，且不能以下划线结尾。   |
   | 描述 | EmailBySMTP图元的描述信息，按需进行设置。                                                                                                                                                                                                                                                                                                      |
   | 接器 | 在下拉框中，选择待使用连接器的名称，即[创建SMTP连接器]中创建连接器的名称。                                                                                                                                                                                                                                               |
      
   
   
4. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936100413.png)，设置调用SMTP参数。
   
   图7配置SMTP连接器   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936100345.png "点击放大")
   表3EmailBySMTP图元连接器参数说明 
   | 参数   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|
   | 动作   | 设置为"SendEmailBySMTP"，是系统预置的邮件发送接口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 输入参数 | 设置接口的输入参数。 - "目标"设置为"address"时：请在"源"中，配置邮件接收地址，可定义为一个输入型变量""email add1""。  - "目标"设置为"subject"时：请在"源"中，配置邮件主题，可定义为一个输入型变量""email sub1""。  - "目标"设置为"body"时：请在"源"中，配置邮件内容，可定义为一个输入型变量""email body1""。   **使用模板发送邮件时，只需要填入邮件模板(template)名，不需要填写主题和内容。** |
   | 输出参数 | 设置接口的输出参数，本示例无需设置输出参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
      
   
   
5. 连接开始和SMTP图元。 
   图8连接图元   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894300676.png)
   
   
6. 单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894300696.png)，保存服务编排。
7. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894300648.png)，运行服务编排。
8. 设置输入参数，单击"运行"。 
   输入参数样例如下：
   ```
   {
       "address": "test@example.com",
       "subject": "SMTP连接器",
       "body": "在服务编排中调用SMTP连接器"
   }
   ```
   样例中，address为收件人，subject为邮件主题，body为邮件内容。address为必填字段，邮件主题和邮件内容不能同时为空。
   显示下图信息，表明邮件发送成功。
   图9邮件发送成功   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894300692.png)
   
   
9. 单击服务编排设计页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894300712.png)，启用服务编排。
 
