返回顶部
首页 > 资讯 > 前端开发 > node.js >node.js发送邮件email的方法详解
  • 491
分享到

node.js发送邮件email的方法详解

发送邮件详解方法 2022-06-04 17:06:07 491人浏览 泡泡鱼
摘要

本文实例讲述了node.js发送邮件email的方法。分享给大家供大家参考,具体如下: 通常我们做node项目时,可能我们会碰到做一个简单的邮件反馈,那么我们今天就来讨论一下,其中遇到的各种坑。 总的来说做

本文实例讲述了node.js发送邮件email的方法。分享给大家供大家参考,具体如下:

通常我们做node项目时,可能我们会碰到做一个简单的邮件反馈,那么我们今天就来讨论一下,其中遇到的各种坑。

总的来说做这个东西,我们可能需要node第三方依赖模块,来实现我们要达到的效果。

这里我推荐两个模块:https://GitHub.com/pingfanren/Nodemailer


npm install nodemailer
//这个模块不错,github上星也比较多,还经常有维护,但是坑也比较多

另一个,Https://github.com/eleith/emailjs


npm install emailjs --save

这里我用的是nodemailer模块,毕竟用的人比较多,跟随主流呢

它的特点:

使用Unicode编码
支持windows系统,不需要安装依赖
支持纯文本和html格式
支持发送附件(包括大型附件)
在HTML中嵌入图片
支持SSL/STARTTLS安全协议
不同的传输方法,可以使用内置也可以使用外部插件的形式
提供自定义插件支持(比如增加DKIM签名,使用markdown代替HTML等等)
支持XOAUTH2登录验证(以及关于更新的令牌反馈)

安装使用


npm install nodemailer --save

使用内置传输发送邮件,可以查看支持列表:https://github.com/andris9/nodemailer-wellknown#supported-services


var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
  //https://github.com/andris9/nodemailer-wellknown#supported-services 支持列表
  service: 'qq',
  port: 465, // SMTP 端口
  secureConnection: true, // 使用 SSL
  auth: {
    user: '768065158@qq.com',
    //这里密码不是qq密码,是你设置的smtp密码
    pass: '*****'
  }
});
// NB! No need to recreate the transporter object. You can use
// the same transporter object for all e-mails
// setup e-mail data with unicode symbols
var mailOptions = {
  from: '768065158@qq.com', // 发件地址
  to: '528779822@qq.com', // 收件列表
  subject: 'Hello sir', // 标题
  //text和html两者只支持一种
  text: 'Hello world ?', // 标题
  html: '<b>Hello world ?</b>' // html 内容
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
  if(error){
    return console.log(error);
  }
  console.log('Message sent: ' + info.response);
});

发送邮件成功以后我们很少会有操作,但也有极少数情况需要在成功以后会处理一些特殊信息的,这时候info对象就能发挥余热了。info对象中包含了messageId、envelop、accepted和response等属性,具体看文档我不一一介绍了。

使用其他传输插件 https://github.com/andris9/nodemailer-smtp-transport


npm install nodemailer-smtp-transport --save

其他代码类似,差别只是在创建transport上,所以这里我就写一部分代码:


var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
// 开启一个 SMTP 连接池
var transport = nodemailer.createTransport(smtpTransport({
 host: "smtp.qq.com", // 主机
 secure: true, // 使用 SSL
 secureConnection: true, // 使用 SSL
 port: 465, // SMTP 端口
 auth: {
  user: "gaolu19901228@qq.com", // 账号
  pass: "******" // 密码
 }
}));
// 设置邮件内容
var mailOptions = {
 from: "768065158<768065158@qq.com>", // 发件地址
 to: "528779822@qq.com", // 收件列表
 subject: "Hello world", // 标题
 text:"hello",
 html: "<b>thanks a for visiting!</b> 世界,你好!" // html 内容
}
// 发送邮件
transport.sendMail(mailOptions, function(error, response) {
 if (error) {
  console.error(error);
 } else {
  console.log(response);
 }
 transport.close(); // 如果没用,关闭连接池
});

下面列出了一些发邮件的字段:

from 发送者邮箱
sender 发送者区域显示的信息
to 接收者邮箱
cc 抄送者邮箱
bcc 密送者邮箱
subject 邮箱主题
attachments 附件内容
watchHtml apple watch指定的html版本
text 文本信息
html html内容
headers 另加头信息
encoding 编码格式

邮件内容使用UTF-8格式,附件使用二进制流。

附件

附件对象包含了下面这些属性:

filename 附件名
content 内容
encoding 编码格式
path 文件路径
contentType 附件内容类型

常见错误

1.账号未设置该服务


{ [AuthError: Invalid login - 454 Authentication failed, please open smtp flag first!]
 name: 'AuthError',
 data: '454 Authentication failed, please open smtp flag first!',
 stage: 'auth' }

解决方案:

QQ邮箱 -> 设置 -> 帐户 -> 开启服务:POP3/SMTP服务

2.发件账号与认证账号不同


{ [SenderError: Mail from command failed - 501 mail from address must be same as authorization user]
name: 'SenderError',
data: '501 mail from address must be same as authorization user',
stage: 'mail' }

3.登录认证失败,可能由于smpt独立密码错误导致 我在qq设置的时候就遇到过


Invalid login - 535 Authentication failed

解决方案:

qq邮箱在测试smtp邮件服务器时,一,在qq邮箱,设置,账户设置中.开启下smtp.二,设置一下独立密码.三,在配置smtp服务器的密码时,注意一定要填你设置的独立密码.不要用邮箱登录密码.否则会提示535 Authentication failed错误.

希望本文所述对大家nodejs程序设计有所帮助。

--结束END--

本文标题: node.js发送邮件email的方法详解

本文链接: https://lsjlt.com/news/12863.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • node.js发送邮件email的方法详解
    本文实例讲述了node.js发送邮件email的方法。分享给大家供大家参考,具体如下: 通常我们做node项目时,可能我们会碰到做一个简单的邮件反馈,那么我们今天就来讨论一下,其中遇到的各种坑。 总的来说做...
    99+
    2022-06-04
    发送邮件 详解 方法
  • linux shell发送Email邮件的方法详解
    一封最简单的邮件 echo -e "To: handy1989@qq.comnCC: handy1989@qq.comnFrom: handy<handy@test.com>nSubjec...
    99+
    2022-06-04
    详解 邮件 方法
  • linux中shell发送Email邮件的实现方法
    本篇内容主要讲解“linux中shell发送Email邮件的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中shell发送Email邮件的实现方法”吧!一封最简单的邮件echo...
    99+
    2023-06-09
  • PHP使用email()函数发送邮件的方法
    随着互联网的不断发展和普及,电子邮件成为人们日常交流中不可缺少的一部分。在网站后台开发过程中,很多时候需要使用PHP发送邮件,以满足邮件通知、注册验证等功能。PHP提供了email()函数来实现邮件的发送,并且使用也非常简单。本文将详细介绍...
    99+
    2023-05-22
    PHP 发送邮件 email()
  • C#中怎么发送Email邮件
    本篇文章为大家展示了C#中怎么发送Email邮件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C#发送Email邮件方法之一:通过LocalHost public void&nb...
    99+
    2023-06-18
  • Xamarin Essentials如何发送邮件Email
    这篇文章主要为大家展示了“Xamarin Essentials如何发送邮件Email”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Xamarin Essentials如何发送邮件Email”这篇...
    99+
    2023-06-05
  • Java Email邮件发送如何实现
    今天小编给大家分享一下Java Email邮件发送如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、邮件协...
    99+
    2023-07-04
  • Android发送邮件的方法实例详解
    本文实例讲述了Android发送邮件的方法。分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的。如何实现它呢?下面以简单的例子进行说明。 ...
    99+
    2022-06-06
    方法 邮件 Android
  • 使用SpringBoot发送邮件的方法详解
    目录第一步,导jar包第二步,申请email授权密码第三步,编写yml文件第四步,编写工具类第五步,编写controller类第六步,测试第一步,导jar包 <!--E...
    99+
    2023-05-19
    SpringBoot发送邮件 SpringBoot邮件
  • Python使用QQ邮箱发送Email的方法实例
    前言 其实Python使用QQ邮箱发送Email代码很简单,短短几行代码就可以实现这个功能。 使用到的模块有smtplib和email这个两个模块,关于这两个模块的方法就不多说了。不了解的朋友们可以查看这...
    99+
    2022-06-04
    实例 邮箱 方法
  • 详解python发送各类邮件的主要方法
    python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法,这里写写自己的的心得,也请高手给些指点。 一、相关模块介绍 发送邮件主要用到了smtplib和email两个模块...
    99+
    2022-06-04
    详解 邮件 方法
  • Python实现邮件发送功能的方法详解
    目录利用 python 发送普通邮件认识发送邮件流程认识邮件协议smtplib 模块email 包发送邮件小案例发送邮件的避坑总结邮件自动化篇章所需的新模块: smtplib 邮件协...
    99+
    2024-04-02
  • Node.js中如何发送邮件
    这篇文章给大家介绍Node.js中如何发送邮件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.首先我们初始化一个Node项目npm init -y2.创建一个ap...
    99+
    2024-04-02
  • linux发送邮件mail详解
    在Linux系统中,可以使用mail命令来发送邮件。mail命令是一个基于文本的邮件客户端工具,可以通过命令行发送邮件。使用mail...
    99+
    2023-09-07
    Linux
  • Node.js实现发送邮件功能
    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 var nodemailer = require("nodemailer"); var mailTitle='htt...
    99+
    2022-06-04
    发送邮件 功能 Node
  • 详解Python发送邮件实例
    Python发送邮件需要smtplib和email两个模块。也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单。今天,就来好好学习一下使用Python发送邮件吧。 SMTP是发...
    99+
    2022-06-04
    发送邮件 详解 实例
  • java邮件发送乱码解决方法
    关于使用javamail包发送邮件时编码的解决问题:推荐:java视频教程 在发送正文时指定正文编码:在发送邮件时使用MimeBodyPart body = new MimeBodyPart(); body.setContent(cont...
    99+
    2019-09-17
    java 乱码
  • WordPress中发送HTML邮件的方法
    方法一,用filter发送HTML邮件 发邮件用的函数是wp_mail(),wp_mail()则基于强大的邮件类phpMailer,所以发送HTML格式是小菜一碟。只是WordPress默认以纯文本格式发送邮件,我们收到...
    99+
    2022-06-12
    HTML邮件
  • c# 两种发送邮件的方法
    目录一、两种发送邮件的方法二、遇到的问题 三、示例System.Web.MailSystem.Net.Mail一、两种发送邮件的方法 有用到两种方式发邮件,一种是用Syst...
    99+
    2024-04-02
  • restymail的简单发送邮件方法
    目录1.配置MailPlugin插件2.发送普通的文本邮件3.发送html邮件4.发送附件邮件1. 配置MailPlugin插件 public void configPlugin(P...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作