【node】发送邮件及附件简要使用说明

Nodemailer是一个用于Node.js应用程序的模块,可以轻松发送电子邮件。该项目始于2010年,当时没有合理的选项来发送电子邮件消息,如今它是大多数Node.js用户默认选择的解决方案。

一、环境配置

安装模块:nodemailer

npm i nodemailer --save

二、邮箱服务配置如下:

let transporter = nodemailer.createTransport({host: 'smtp.qq.com',port: 465,secure: true,auth: {user: '**********',pass: 'your-password'}
});

邮箱服务提供商的要求,配置SMTP服务器的主机名、端口号和安全选项等细则如下:
host:网易邮箱 | QQ 的SMTP服务器地址
port:端口,如果 secure 为 true,则端口为 465
secure:安全连接
auth:邮箱认证
user:发送方邮箱的账号
pass:邮箱授权密码

另还有下面这样指定的服务器的

var transporter = nodemailer.createTransport({service: 'QQ',auth: {user: '944xxxx69@qq.com',//发送者邮箱pass: 'czboxxxxxqvmbebd' //邮箱第三方登录授权码},logger: bunyan.createLogger({name: 'nodemailer'}),//打印日志debug: true});

service:指定邮件服务商,如“QQ”、“gmail”

三、邮件发送配置

const mailOptions = {from: 'youremail@163.com', // 你的邮箱to: 'test@163.com', // 接收者,可以同时发送多个,以逗号隔开cc:'xx@example.com',subject: '邮件测试',text: '这是一封来自 Node.js 的邮件测试。', // 邮件文本html: `<h1>this is en email from nodemailer</h1>`, // 邮件支持 html,但是和 text 冲突,后者会覆盖掉前者,只能选其一// Apple Watch specific HTML body 苹果手表指定HTML格式watchHtml: '<b>Hello</b> to myself',attachments: [ // 上传附件的格式,path 为相对路径{   // utf-8 string as an attachmentfilename: 'text1.txt',content: 'hello world!'},{   // binary buffer as an attachmentfilename: 'text2.txt',content: new Buffer('hello world!','utf-8')},{   // file on disk as an attachmentfilename: 'text3.txt',path: '/path/to/file.txt' // stream this file},{   // filename and content type is derived from pathpath: '/path/to/file.txt'},{   // stream as an attachmentfilename: 'text4.txt',content: fs.createReadStream('file.txt')},{   // define custom content type for the attachmentfilename: 'text.bin',content: 'hello world!',contentType: 'text/plain'},{   // use URL as an attachmentfilename: 'license.txt',path: 'https://raw.github.com/nodemailer/nodemailer/master/LICENSE'},{   // encoded string as an attachmentfilename: 'text1.txt',content: 'aGVsbG8gd29ybGQh',encoding: 'base64'},{   // data uri as an attachmentpath: 'data:text/plain;base64,aGVsbG8gd29ybGQ='},{// use pregenerated MIME noderaw: 'Content-Type: text/plain\r\n' +'Content-Disposition: attachment;\r\n' +'\r\n' +'Hello world!'}],
};

from :发件人的电子邮件地址。电子邮件地址可以是简单的 ‘sender@server.com’ 或格式化的 ‘“发件人姓名” sender@server.com’,详细信息请参见地址对象
to :以逗号分隔的收件人电子邮件地址列表或数组,将显示在“收件人”字段中
cc :以逗号分隔的抄送人电子邮件地址列表或数组,将显示在“抄送”字段中。
bcc:以逗号分隔的密送人电子邮件地址列表或数组,将显示在“密送”字段中
subject :邮件的主题
text :作为Unicode字符串、缓冲区、流或类似附件的对象的纯文本版本消息
html :作为Unicode字符串、缓冲区、流或类似附件的对象的HTML版本消息,但是和 text 冲突,后者会覆盖掉前者,只能选其一
watchHtml :适用于Apple Watch的特定HTML版本的消息。最新的手表可以正常渲染text/html内容,因此收件人可能永远不会看到watchHtml
amp : 适用于AMP4EMAIL的特定HTML版本的消息,与text和html的使用方式相同。有关使用方法,请参见下面的AMP示例,或参阅此博文以了解发送和渲染的更多信息
attachments:附件对象的数组(有关详细信息,请参见“使用附件”)。附件还可用于嵌入图像
filename: 附件的文件名,可以使用Unicode字符
content:附件的内容,可以是字符串、缓冲区或流
contentType:附件的可选内容类型,如果未设置,将从文件名属性中推导出来
cid: 用于在HTML消息源中使用内联图像的可选内容ID
path:附件的文件路径,如果希望流式传输文件而不是包含在附件中(适用于较大的附件)
href:文件的URL(也可以是data URI)
httpHeaders :与href请求一起传递的可选HTTP头,例如 {authorization: “bearer …”}
contentDisposition : 附件的可选内容展示类型,默认为“attachment”
encoding -:如果设置并且内容是字符串,则使用指定的编码将内容编码为缓冲区。示例值:“base64”、“hex”、“binary”等。如果要在JSON格式的电子邮件对象中使用二进制附件,这很有用
headers : 附件节点的自定义标头。与消息标头的使用方式相同
raw : 是一个可选的特殊值,用于覆盖当前MIME节点的全部内容,包括MIME标头。如果要自己准备节点内容,这很有用。 可以添加任意数量的附件

另其他选项:
sender - 发件人的电子邮件地址,将显示在“发件人”字段中(如果不确定使用哪个,请始终优先使用“from”)
replyTo - 将显示在“回复”字段中的电子邮件地址
inReplyTo - 此邮件所回复的消息的Message-ID
references - Message-ID列表(数组或以空格分隔的字符串)
envelope - 可选的SMTP信封,如果自动生成的信封不合适(有关详细信息,请参见SMTP信封)

attachDataUrls - 如果为true,则将此消息的HTML内容中的data:图像转换为嵌入的附件

3.1、标题邮件地址对象设置

{name: 'Майлер, Ноде',address: 'foobar@example.com'
}
...,
to: 'foobar@example.com, "Ноде Майлер" <bar@example.com>, "Name, User" <baz@example.com>',
cc: ['foobar@example.com','"Ноде Майлер" <bar@example.com>,"Name, User" <baz@example.com>'
],
bcc: ['foobar@example.com',{name: 'Майлер, Ноде',address: 'foobar@example.com'}
]
...

四、发送邮件

transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent');
}
transporter.close();
});

五、参考地址:

https://nodemailer.com/about/

好用的开发工具推荐

历时一年半多开发终于smartApi-v1.0.0版本在2023-09-15晚十点正式上线
smartApi是一款对标国外的postman的api调试开发工具,由于开发人力就作者一个所以人力有限,因此v1.0.0版本功能进行精简,大功能项有:

  • api参数填写
  • api请求响应数据展示
  • PDF形式的分享文档
  • Mock本地化解决方案
  • api列表数据本地化处理
  • 再加上UI方面的打磨

为了更好服务大家把之前的公众号和软件激活结合,如有疑问请大家反馈到公众号即可,下个版本30%以上的更新会来自公众号的反馈。
嗯!先解释不上服务端原因,API调试工具的绝大多数时候就是一个数据模型、数据处理、数据模型理解共识的问题解决工具,所以作者结合自己十多年开发使用的一些痛点来打造的,再加上服务端开发一般是面向企业的,作者目前没有精力和时间去打造企业服务。再加上没有资金投入所以服务端开发会滞后,至于什么时候会进行开发,这个要看募资情况和用户反馈综合考虑。虽然目前国内有些比较知名的api工具了,但作者使用后还是觉得和实际使用场景不符。如果有相关吐槽也可以在作者的公众号里反馈蛤!
下面是一段smartApi使用介绍:
在这里插入图片描述

下载地址:

https://pan.baidu.com/s/1kFAGbsFIk3dDR64NwM5y2A?pwd=csdn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/89301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口测试——接口协议抓包分析与mock_L2

目录&#xff1a; 抓包工具charles抓包工具fiddler抓包工具证书配置app抓包实战练习接口测试实战练习 1.抓包工具charles 工具介绍 支持 SSL 代理支持流量控制支持重发网络请求&#xff0c;方便后端调试支持修改网络请求参数支持网络请求的截获并动态修改可以自动将 json 或…

电子电子架构——AUTOSAR信息安全机制有哪些?(上)

电子电子架构——AUTOSAR信息安全机制有哪些&#xff08;上&#xff09; 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 人们会在生活中不断攻击你。他们的主要…

Mysql 子查询,最值查询

1.leetcode-184&#xff1a;查找部门内最高的薪水 首先是一个子查询&#xff0c;找出一个部门里最高的那个工资 随后查找最终需要的值&#xff0c;并且部门编号以及薪水应该包含在这个子查询中 最终答案&#xff1a; # Write your MySQL query statement below SELECT Depar…

爬虫获取一个网站内所有子页面的内容

上一篇介绍了如何爬取一个页面内的所有指定内容&#xff0c;本篇讲的是爬去这个网站下所有子页面的所有指定的内容。 可能有人会说需要的内容复制粘贴&#xff0c;或者直接f12获取需要的文件下载地址一个一个下载就行了&#xff0c;但是如下图十几个一级几十个二级一百多个疾病…

网工内推 | 网络工程师,软考证书优先,六险一金,包吃

01 科力信息 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、负责蚌埠项目的设备安装及调试&#xff1b; 2、对边界网络运行中的监控、故障排除、问题处理。 任职要求&#xff1a; 1、2年及以上网络相关工作经验&#xff0c;有交通管理网络运维经验优先&#xff1b…

重新认识Java中的死锁问题

一、定义 多个进程因抢夺系统资源而产生相互等待的现象。 二、场景模拟 package com.gui.practise.thread.deadlock;public class DeadLock {private final Object resource1 new Object();//资源 1 private final Object resource2 new Object();//资源 2 public v…

前端架构师之路03_移动端规范兼容处理

1 移动端页面制作规范 1.1 计量单位的使用 CSS 的计量单位选择 px&#xff1a;固定的像素值em&#xff1a;相对父级元素的 font-size 设置来作为当前元素 1em 所代表的像素值&#xff0c;如父节点的 font-size:10px&#xff0c;当前节点的 font-size:1.2em&#xff0c;则当前节…

什么才是物联网领域最好的开发语言?

什么才是物联网领域最好的开发语言&#xff1f; 最好&#xff01;运行最快&#xff1f;开发最高效&#xff1f;最容易学习&#xff1f; 各有特点&#xff01; 采用C/C语言&#xff0c;运行最快&#xff0c;一般采用厂家提供的底层驱动支持包BSP&#xff0c;所有MCU都支持。如…

2009-2018年各省涉农贷款数据(wind)

2009-2018年各省涉农贷款数据&#xff08;wind&#xff09; 1、时间&#xff1a;:209-2018年 2、范围&#xff1a;31省 3、来源&#xff1a;wind 4、指标&#xff1a;涉农贷款 指标解释 &#xff1a;在涉农贷款的分类上&#xff0c;按照城乡地域将涉农贷款分为农村贷款和城…

Django的设计模式及模板层

Django的设计模式及模板层 设计模式MVC和MVT MVC 代表 Model-View-Controller(模型-视图-控制器)模式。 M 模型层(Model),主要用于对数据库层的封装 V 视图层(View),用于向用户展示结果 (WHAT HOW) C 控制(Controller&#xff0c;用于处理请求、获取数据、返回结果(重要) 作…

记录使用iText7查找PDF内容关键字坐标,加盖电子签名、印章

一、前言 项目以前签字都是由C端那边进行合成操作&#xff0c;最近项目要求把那块功能&#xff0c;由后端进行实现&#xff0c;其中包含坐标、关键字、任意位置进行签字操作&#xff0c;坐标是最容易实现的&#xff0c;曾经也写过类似的功能在&#xff08;添加图片印章到PDF&a…

Spring学习笔记3 Spring对IOC的实现

Spring学习笔记2 Spring的入门程序_biubiubiu0706的博客-CSDN博客 控制反转是一种思想 控制反转是为了降低程序耦合度,提高程序扩展力,达到OCP(开闭原则)原则,达到DIP(依赖倒置原则)原则 控制反转,反转的是什么? 1.将对象的创建权力交出去,交给第三方容器负责 2.对象与对象…

【Vue3 源码解析】nextTick

nextTick 是 Vue 3 中用于异步执行回调函数的函数&#xff0c;它会将回调函数延迟到下一个微任务队列中执行。其中&#xff0c;Vue 更新 DOM 是异步的。下面是对 nextTick 函数的详细解释&#xff1a; export function nextTick<T void, R void>(this: T,fn?: (this:…

【C#】Redis在net core下使用教程

系列文章 文章目录 系列文章前言一、Redis 简介1.1 Redis 优势1.2 Redis与其他key-value存储有什么不同&#xff1f; 二、Redis安装步骤2.1 下载链接2.2 安装测试 三、Redis修改帐户密码四、Redis写成Windows服务五、.net core - 使用CSRedisCore操作redis 前言 官方教程&…

25814-2010 三聚氯氰 阅读笔记

声明 本文是学习GB-T 25814-2010 三聚氯氰. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了三聚氯氰的要求、采样、试验方法、检验规则以及标志、标签、包装、运输、贮存、安全、 安全技术说明书。 本标准适用于三聚氯氰的产品…

ARM/X86工控机在轨道交通交通管理系统的应用(4)

交通管理系统 信迈XM-3000系列专为道路监控应用而设计。随着城市化的发展&#xff0c;道路车辆数目与日俱增&#xff0c;而道路监控对于时刻保障城市的安全是非常必要的。由于性能强大并支持宽温度工作&#xff0c;XM-3000系列成为交通管理系统应用的理想选择。 系统架构 交通…

服务网关Gateway_微服务中的应用

没有服务网关 问题&#xff1a; 地址太多安全性管理问题 为什么要使用服务网关 网关是微服务架构中不可或缺的部分。使用网关后&#xff0c;客户端和微服务之间的网络结构如下。 注意&#xff1a; 网关统一向外部系统&#xff08;如访问者、服务&#xff09;提供REST API。在Sp…

常用螺栓标准、规格、用途汇总表

螺栓 1 常用螺栓标准、用途 常用螺栓标准、规格、用途见表1。 表1 常用螺栓标准、规格、用途汇总表 注&#xff1a;1.冷镦工艺生产的小六角头螺栓具有材料利用率高、生产效率高、机械性能高等优点,但由于头部尺寸较小, 不宜用于多次装拆、被联接件强度较低和易锈蚀等场合。 2.…

印章篆刻小程序商城的作用是什么

印章的需求度也有很高市场需求&#xff0c;处理办公印章外&#xff0c;还有艺术类的&#xff0c;而对爱好者来说&#xff0c;需要找到一家靠谱的品牌制作&#xff0c;包括材料、样式、内容等都有较高要求&#xff0c;线上可以接触到更多雕刻商家。 而对品牌来说&#xff0c;需…

Chrome获取RequestId

Chrome获取RequestId 参考&#xff1a;https://help.aliyun.com/zh/redis/how-do-i-obtain-the-id-of-a-request 在浏览器页面按下F12键&#xff0c;打开开发者工具页面&#xff1b; 在开发者工具页面&#xff0c;单击Network(网络)&#xff1b; 在playload(载荷)窗口中找到目…