vue 中watch函数名_如何在Vue中使用云开发的云函数,实现邮件发送

云开发的云函数能够让我们无需购买和管理服务器,就能够实现一些前端做不了,必须在服务端做的复杂操作,让我们大大降低了运维成本。本篇将会为您讲解,如何在前端主流框架Vue中使用云开发的云函数。

通过本篇您将可以学习到:

  • 如何创建云开发环境
  • 如何在Vue中使用云开发
  • 如何在Vue中利用云开发的云函数,实现邮件的发送

1.创建云开发环境

打开云开发控制台地址:https://console.cloud.tencent.com/tcb,点击新建云开发环境

45d9090d2e278a7b2cfd1e8ccca6aa7b.png
创建云开发环境

创建后进入控制台首页,复制环境ID保存,后续前端调用云函数需要用到

28b1945897541432412c6b905890f91a.png
保存环境ID

创建完成后,点击登录授权,开启匿名登录

2a6a52cf43fb95f0cbc83396634a7bd2.png
开启匿名登录

2.创建项目

首先,Vue CLI需要 Node.js 8.9或更高版本 (推荐 8.11.0+),下载地址:http://nodejs.cn/,安装后即可进行创建

npm install -g @vue/cli # 安装Vue
vue ui #需要以管理员权限运行

这时会以图形化界面将你引导至项目创建的流程

296dfbeb024b7e5bc16d34fc8116d57a.png
创建vue项目

创建完成后点击任务-运行Vue服务

3cdf1a8ba1e8849d5eed5d5df2e14268.png
运行Vue

自此初始创建完成

3.在Vue中安装tcb-js-sdk

点击依赖再点击安装依赖

e3267ccd2fcd65b02ba455bbe868e61e.png
安装sdk

搜索tcb-js-sdk即可安装

9013f833d194d20e6fc3611c764b8837.png
安装

在Vue项目的main.js中导入tcb-js-sdk,需要注意的是,要将env换为之前保存环境Id

import tcb from 'tcb-js-sdk'
const app = tcb.init({
        env: 'share-195a54' // 需要更换为自己的环境Id,如我的是:share-195a54
    })
Vue.prototype.$app = app // 在原型上添加上tcb-js-sdk实例

4.在云函数中使用实现邮件的发送

mailgun是一个开发人员的电子邮件服务,具有强大的API功能,能够轻松发送,接收和跟踪电子邮件。官网地址:https://www.mailgun.com/

需要注册后获取api_key,注册过程这里就不再赘述了,注册后在该页面获取api_key

eb19e344ceb8f18e3a074d17b62137de.png
获取api_key

编写云函数

'use strict';
exports.main = async(event, context) => {
    /* data格式
    {
        addressee: 'xxxx@xx.xx', // 收件人地址
        subject: 'xxxx', // 邮件主题
        text: 'xxxxxx' // 正文
    }
     */
    const mailgun = require("mailgun-js");
    const DOMAIN = 'sandbox249ed5376daa44a2baabd83d3cb2bf9b.mailgun.org';
    const api_key = '7aa7bf7e23105b1726efa09a409768fc-468bde97-aeddf80e'
    const mg = mailgun({ apiKey: api_key, domain: DOMAIN });
    const data = {
        from: '云开发 ',
        to: event.addressee, // 如果有多个收件人以逗号分隔:"xxx1@qq.com, xxx2@qq.com"
        subject: event.subject, // 主题
        text: event.text + '\n' + '编号:' + Math.ceil(Math.random()*100), //详细内容
    };
    mg.messages().send(data, function(error, body) {
        console.log(body)
    });
};

在控制台新建云函数,运行环境选择NodeJs 10.15

0082c10fbe22e72a53d9095bae546d6d.png
新建云函数
9996581acd5972273ec257a8097265b3.png
新建云函数2

点击云函数、函数代码中新建package.json,点击保存并安装依赖

2db44dd93a44a8950996a261cd2aad33.png
新建依赖

package.json的内容

{
    "name": "app",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {},
    "author": "",
    "license": "ISC",
    "dependencies": {
        "tcb-admin-node": "latest",
        "mailgun-js": "^0.22.0"
    }
}

自此云函数的部署已经完成,只需要我们前端去进行简单的调用

回到我们的Vue

在Vue中创建一个简单地邮件发送函数,在前端代码中绑定按钮点击事件,触发后首先进行匿名登录,登录后进行邮件的发送,发送成功后输出成功提示:

async send_email() {
      // 匿名登陆
      await this.$app
        .auth({
          persistence: "session"
        })
        .anonymousAuthProvider()
        .signIn()
        .then(res => {
          console.log(res); // 登录成功
        })
        .catch(err => {
          console.log(err); // 登录失败
        });
      // 调用云函数发送邮件
      await this.$app
        .callFunction({
          name: "send_email",
          data: {
            addressee: this.addressee, // 收件人地址
            subject: this.subject, // 邮件主题
            text: this.text // 正文
          }
        })
        .then(res => {
          this.$message.success("发送成功!");
          console.log(res);
        })
        .catch(err => {
          this.$message.error("发送失败!");
          console.log(err);
        });
    }

HTML调用的代码

77e9c294c43b8bb74fb730527d2c2930.png
html代码

5.项目演示

发送邮件测试

255db9bbffaa1b3510fa66fb06a31c97.png
success

检查邮箱,成功接收邮件

3ca38f928b52824e55a5dc1982338683.png
success_mail

演示站点:https://mail.enlovejin.cn/ Demo

开源地址:https://gitee.com/12300/cloudbase_mail

欢迎在下方评论区留言或在微信开放社区 进入云开发专区与我们交流。

 更多云开发CloudBase出品

点击下方图片即可了解 57000591a97555ba6255a1e1aa9cc820.png △  云开发数据库已支持回档到最长14天内的任意时刻
fa37364d823e48c26bc344d2dd8c8733.png
由于公众号推送规则更改,请多多 分享点赞“在看” ,以及时获取云开发Cloudbase的最新动态。

      点击在看让更多人发现精彩a0ddada2b66d0bc36c744b6c259411f0.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值