当前位置:主页 > 查看内容

云函数 创建邮件发送函数并测试 - 最佳实践

发布时间:2021-10-14 00:00| 位朋友查看

简介:操作步骤 创建 CMQ 主题订阅 登录 消息服务CMQ 控制台。 在【主题订阅】服务下单击【新建】,选择北京地域,命名为 SendEmail,主题属性保持默认即可。 创建云函数 SCF:SendEmail 登录云函数控制台,选择左侧导航栏中的【函数服务】。 在“函数服务”页面上……

操作步骤

创建 CMQ 主题订阅

  1. 登录 消息服务CMQ 控制台。
  2. 在【主题订阅】服务下单击【新建】,选择北京地域,命名为 SendEmail,主题属性保持默认即可。

创建云函数 SCF:SendEmail

  1. 登录云函数控制台,选择左侧导航栏中的【函数服务】。
  2. 在“函数服务”页面上方选择北京地域,并单击【新建】进入新建函数页面。
    设置以下参数信息,并单击【下一步】。如下图所示:
    • 创建方式:选择【模板创建】。
    • 模糊搜索:输入“通过消息队列发送邮件”,并进行搜索。本文以运行环境“Python2.7”为例。
      单击模板中的【查看详情】,即可在弹出的“模板详情”窗口中查看相关信息,支持下载操作。
  3. 在【函数代码】页签中,修改代码中的“第三方 SMTP 服务”。参数 mail_host、mail_user、mail_pass、mail_port 需要根据实际发送的邮箱或邮件服务器来配置,本示例我们以 QQ 邮箱为例进行说配置。
    说明:

    您可以从 QQ邮箱帮助中心 了解到如何开启 QQ 邮箱的 SMTP 功能。QQ 邮箱的 SMTP 功能开启后,相应的参数如下:

    • mail_host:SMTP 服务器地址,即 smtp.qq.com。
    • mail_user:登录用户名为您的邮箱地址,例如 123******@qq.com。
    • mail_pass:您在开启 SMTP 功能时设置的密码。
    • mail_port:服务器登录端口,由于 QQ 邮箱强制要求 SSL 登录,端口固定为465,同时代码中使用 smtplib.SMTP_SSL 创建 SSL 的 SMTP 连接。

测试 CMQ 主题和云函数的连通性

测试邮件发送的正确性

  1. 完成 SendEmail 函数创建后,进入函数详情页。在代码编辑器右上角单击【测试模板】,在展开的列表中选择【新增测试模板】,并选择 “CMQ Topic 事件模板”作为基础模板,测试模板命名为 sendemail
  2. 将 测试代码 复制粘贴到模板的代码框中,单击【测试】将代码部署并进行测试,查看函数运行日志。
    其中 msgBody 字段内的 fromAddr 字段和 toAdd 字段,需要根据您自身邮箱地址进行修改,建议修改为相同地址,自身邮箱向自身邮箱内发送邮件,以便测试邮件发送的正确性。

测试代码

{
 "Records": [
   {
     "CMQ": {
       "type": "topic",
       "topicOwner":1253970226,
       "topicName": "sendEmailQueue",
       "subscriptionName":"sendEmailFunction",
       "publishTime": "2017-09-25T06:34:00.000Z",
       "msgId": "123345346",
       "requestId":"123345346",
       "msgBody": "{\"fromAddr\":\"*****@qq.com\",\"toAddr\":\"****@qq.com\",\"title\":\"hello from scf & cmq\",\"body\":\"email content to send\"}",
       "msgTag": ""
     }
   }
 ]
}

测试结果

测试成功结果。如下图所示:

测试 CMQ 主题与云函数的联动

邮件测试成功后,继续测试 CMQ 主题和云函数的联动。

  1. 切换至 消息服务 CMQ 控制台。
  2. 在主题订阅页面,单击主题 SendEmail 对应的【发送消息】。如下图所示:
  3. 在弹出的对话框中,输入如下消息内容后,单击【发送】。
    {
    "fromAddr":"*****@qq.com",
    "toAddr":"*****@qq.com",
    "title":"hello from scf & cmq",
    "body":"email content to send"
    }
    说明:

    其中 msgBody 字段内的 fromAddr 字段和 toAdd 字段,需要根据您自身邮箱地址进行修改。

  4. 切换至 云函数控制台,查看 SendEmail 函数的执行日志,并前往邮箱查看是否收到了邮件。

完成测试后,您可以在您的应用代码中嵌入 CMQ SDK,对 SendEmail 这个主题队列发送消息,来完成邮件发送。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:采集Syslog - 日志服务 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐