8分钟

任务 4 SCF方式发送邮件

任务目标

使用 SCF 方式,实现编写和发送邮件的功能。

任务步骤

1.登录腾讯云官网首页

注册账号并登录腾讯云官网的步骤,请参考课程“CVM 自定义镜像操作实战”的 4.1 任务1 “注册腾讯云账号并登录腾讯云管理控制台” ,链接如下:

https://cloud.tencent.com/edu/learning/course-1878-22466

进入控制台页面。

进入控制台

2.创建云函数 SCF:sendEmail

  • 登录云函数,进入【函数服务】页面。
查找云函数服务
进入函数服务
  • 选择【广州】地域,单击【新建】,进入新建函数页面。
设置地域
  • 填写以下参数信息,单击【下一步】。如下图所示:
    • 函数名称:命名为 “sendEmail”
    • 创建方式:选择 “模板函数”
    • 模板搜索:选择 “语言” 为 “Python 2.7” 的 “通过消息队列发送邮件” 模板。
    • 鼠标移至模板函数上,可查看模板函数详情,支持下载操作。
设置参数信息
  • 保持默认配置,单击【完成】,完成函数的创建。
设置参数信息
  • 创建完成
创建完成

3.测试邮件发送代码的正确性

  • 完成 sendEmail 函数创建后,点击函数名,进入【函数代码】页面。
点击函数名
进入函数代码页面
  • 在【函数代码】页签中,修改代码中的“第三方 SMTP 服务”。参数 mail_host、mail_user、mail_pass、mail_port 需要根据实际发送的邮箱或邮件服务器来配置,其中 mail_host 是固定的“smtp.qq.com”,无需修改;mail_user 是发送邮件的邮箱账号;mail_pass 是前面开启 POP3/SMTP 服务后提供的授权码;mail_port 是固定的“465”,无需修改。
修改参数
  • 在函数代码界面的下方,选择模板。
选择模板
  • 选择 CMQ Topic 事件模板,进入【更换测试模板】。
选择CMQ Topic事件模板
  • 将测试代码复制粘贴到【更换测试模板】的代码框中,点击【提交】。

测试代码如下:

{
    "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": []
            }
        }
    ]
}

注意:其中 msgBody 字段内的 fromAddr 字段和 toAdd 字段,需要根据您自身邮箱地址进行修改,建议修改为相同地址,自身邮箱向自身邮箱内发送邮件,以便测试邮件发送的正确性。

更换测试模板

单击【测试运行】,查看函数运行日志。

测试运行

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

测试结果成功

4.实验验证

由于本人填写的目标邮箱为自己的邮箱,因此登录自己邮箱查看是否收到该邮件。

查看到邮件

已收到该邮件,验证实验成功。