css计算函数 scalc 微信小程序_在微信小程序中,基于云函数发送邮件
引言:基于第三方Nodemailer可以实现使用云函数来发送邮件。在开发过程中使用发送邮件,一般使用场景是用来用户注册账号,更改密码等其它验证。
1.开发准备
1.1邮箱
已注册成功的QQ邮箱、网易邮箱等;
1.2Nodemailer功能
- 零依赖性的单个模块–由于没有死角,因此代码易于审核
- 高度重视安全性,没有人喜欢RCE漏洞
- Unicode支持使用任何字符,包括表情符号
- Windows支持 –您可以使用安装npm在Windows上,与其他模块一样,没有编译的依赖项。从Azure或Windows盒子免费使用它
- 使用HTML内容以及纯文本替代
- 加 附件 到消息
- 嵌入式的 HTML内容的图像附件–您的设计不会被阻塞
- 使用TLS / STARTTLS的安全电子邮件传递
- 不同 运输方式 除了内置 SMTP支持
- 与签署消息 DKIM
- 自订 插件支持 用于处理消息
- 桑 OAuth2 认证方式
- 代理人 用于SMTP连接
- ES6代码 –由于var的提升,不再有意外的内存泄漏
- 自动生成来自的电子邮件测试帐户电子邮件
Nodemailer技术文档:https://nodemailer.com/about/
2.开启SMTP服务,获取邮箱授权码
授权码在发送邮件时需要使用,以下为QQ邮箱和网易邮箱获取授权码的详细步骤,授权码的具体使用会在代码模块详细介绍;
2.1获取QQ邮箱授权码
登录QQ邮箱网页版,按照以下步骤获取授权码:
1.在首页找到设置
2.选择账户
3.在账户页面向下滚动找到此选项,点击开启服务
4.在弹出页面,按照步骤发送信息
5.发送成功后即可获得授权码:xxxxxxxxxxxxxx
2.2.获取网易邮箱授权码
登录网易邮箱网页版,按照以下步骤获取授权码:
1.在首页找到设置,在下拉框选择POP3/SMTP/IMAP
2.在此页面点击开启
3.在弹出页面,按照步骤发送信息
4.发送成功后即可获得授权码:xxxxxxxxxxxxxxx
3.使用小程序云函数发送邮件
3.1配置依赖
在微信开发者工具中,新建一个云函数sendEmail,在云函数的package.json配置nodemailer最新版本的依赖,并右键云函数目录选择在终端中打开输入命令npm install安装依赖
"dependencies": { "nodemailer": "latest" }
3.2编写代码
以网易邮箱为例,在index.js里编写以下代码,在开发使用过程中根据自己的情况更改参数即可,如:
- @parameter host:SMTP服务器地址;
- @parameter port:端口号,通常为465,587,994,不同的邮件客户端端口号可能不一样;
- @parameter auth
user:邮箱账号,填写已开启SMTP服务的邮箱地址即可;
pass:邮箱密码,不同的邮件系统可能机制不一样,QQ邮箱和网易邮箱为邮箱授权码;
- @parameter message
from:填写发件邮箱地址;
to:填写收件方的邮箱地址;
- nodemailer支持发送text文字内容、html网页内容以及附件的形式;
const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event, context) => { const nodemailer = require("nodemailer"); let sendEmail = nodemailer.createTransport({ host: "smtp.163.com", //SMTP服务器地址 port: 465, //端口号,通常为465,587,994,不同的邮件客户端端口号可能不一样 secure: true, //如果端口是465,就为true;如果是其它就填false auth: { user: "xxxxxxxx@163.com", //邮箱账号,填写已开启SMTP服务的邮箱地址即可 pass: "xxxxxxxxx" //邮箱密码,不同的邮件系统可能机制不一样,QQ邮箱和网易邮箱为邮箱授权码 } }); let message = { from: 'xxxxxxxx@163.com', //填写发件邮箱地址 to: 'xxxxxxx@qq.com', //填写收件方的邮箱地址 subject: '这是我发送的第一封邮件', text: 'Hello world?', //text纯文字 html: 'Hello world?', //html代码 }; let res = await sendEmail.sendMail(message); return res; }
3.3云函数的简单调用
云函数编写完成,并右键云函数目录选择上传并部署所有文件,待部署完成即可使用
wxml页面代码:
点击发送邮件
js调用云函数:
sendEmail({ wx.cloud.callFunction({ name:"sendEmail", }).then(res => { console.log("邮件发送成功",res) }).catch(err => { console.log("邮件发送失败",err) }) },
成功执行,可在收件邮箱中查看到邮件:
4.云函数发送邮箱的扩展
本文主要介绍使用云函数来发送邮件的功能,虽然文中代码以网易邮箱为例,但在自己使用过程中可以灵活的改变参数以达到自己的需求。
且在实际开发过程中,可根据自己的需求来控制发送邮件的过程和流程,如果有什么不懂的问题可以查看官方文档,也可以私信本人(微信:ZW190308)
css计算函数 scalc 微信小程序_在微信小程序中,基于云函数发送邮件相关推荐
- 五十一、微信小程序云开发中的云函数
@Author:Runsen 暑假很长,明年就是找工作的时候了.这个时候必须比之前还要拼命. 百无聊赖,看过文档才发现,微信小程序已将云函数,对象存储和云数据库这些都搬了进来,由于前几天刚刚看过这些方 ...
- 计算机教室如何防火,2020校园防火安全小知识_消防安全小知识顺口溜
消防安全知识必须人人懂,火灾隐患无处不在,稍不注意就容易引发大祸.所以,我们要从身边做起,从自己做起.以下是小编整理了关于2020校园防火安全小知识_消防安全小知识顺口溜,希望你喜欢. 校园防火安全小 ...
- Spring Boot+微信小程序_保存微信登录者的个人信息
1. 前言 微信小程序开发平台,提供有一类 API,可以让开发者获取到微信登录用户的个人数据.这类 API 统称为开放接口. Tip:微信小程序开发平台,会把微信登录用户的个人信息分为明文数据和敏感数 ...
- python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...
原标题:干货 | 微信小程序自动化测试最佳实践(附 Python 源码) 本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善, ...
- 微信群打卡小程序_用微信小程序“小打卡”,打造免费的阅读平台!
小归 一直和微信小程序--"小打卡"的创始人保持着微信通讯,也写了<快捷|以"小打卡"为例带你玩转微信小程序!>,这篇文章主要是真对如何打卡来写的, ...
- 专属海报小程序_轻松生成小程序分享海报
小程序海报组件 需求 小程序分享到朋友圈只能使用小程序码海报来实现,生成小程序码的方式有两种,一种是使用后端方式,一种是使用小程序自带的canvas生成:后端的方式开发难度大,由于生成图片耗用内存比较 ...
- 仿qq邮箱源码程序_巧用小程序·云开发实现邮件发送功能丨实战
先看效果图: 通过上面的日志,可以看出我们是158开头的邮箱给250开头的邮箱发送邮件,下面是成功接收到的邮件. 准备工作 1.qq邮箱一个 2.开通你的qq邮箱的授权码(会具体讲解) 3.注册自己的 ...
- 大小端交换的程序_数据库在小程序云开发中的应用
" 高效率数据库为小程序·云开发赋能,共同为客户提供更多优质解决方案. " 目录 小程序·云开发介绍小程序·云开发的数据库服务解决方案及客户成功案例 小程序云开发介绍 " ...
- f2 柱状图滚动 钉钉小程序_钉钉小程序图表库AntV - F2 使用总结
项目涉及图表部分的技术选型 对于图表这块的开发,使用一些流行的图表库可以大大提高我们的开发效率,目前较为流行的图表库大概有Echarts,Hcharts,AntV,他们都是大同小异,我印象比较深刻的是 ...
最新文章
- Filter及FilterChain的使用具体解释
- 微服务接入oauth2_SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法)...
- 人脸标注工具源码解读
- PHP基础题带详细答案,PHP基础语法试题(一)答案版.docx
- 3线8线译码器74HC138门电路设计一位二进制全减器电路
- linux 7 恢复系统,CentOS 7在grub rescue模式中修复系统
- js弹出框 确定 取消
- 腾讯云部署node mysql_【腾讯云】配置安装node
- C# 按行读取txt记事本文件
- Scala——函数式编程、面向对象
- ArcGis基础—shapefile矢量文件与lyr图层文件之间有何区别?
- c语言 srand was not,c语言srand生成随机数的问题
- native数据类型 react_react-native中使用realm数据库
- 使用CSS3设置条纹背景
- 三子棋小游戏(超详细)
- uc浏览器手机端禁用复制
- 计算机公共基础知识(N-S图,DFD图,PAD图,程序流程图,E-R图)
- 路由控制——ACL、IP-Prefix List
- OEEL——使用OEEL快速画出精美图案(以土地利用转移变化为例)
- PHP设置文本框背景透明度,话说半透明文本框!(不透明度可以任意调节,可以实现全透明)...