nodejs模块nodemailer基本使用-邮件发送示例(支持附件)

Node.js模块nodemailer基本使用攻略

什么是nodemailer

nodemailer 是一个简单易用的 Node.js 的发送邮件模块。nodemailer 可以用来发送电子邮件,支持从网站上的表单发送。它可以安装在命令行中,并且能够通过 API 构建出发送电子邮件的 Node.js 应用程序。

安装nodemailer

通过npm安装nodemailer:

npm install nodemailer --save

使用nodemailer

首先需要引入nodemailer:

const nodemailer = require('nodemailer');

快速开始

let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: 'youremail@gmail.com',
        pass: 'yourpassword'
    }
});

let mailOptions = {
    from: 'youremail@gmail.com',
    to: 'myfriend@yahoo.com',
    subject: 'Sending Email using Node.js',
    text: 'That was easy!'
};

transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        console.log(error);
    } else {
        console.log('Email sent: ' + info.response);
    }
});

上面的代码通过Gmail发送电子邮件,邮件内容为文本。其中,from用于指定发送电子邮件的发件人邮箱,to指定收件人的邮箱地址,subject指定电子邮件的主题,text是电子邮件的文本内容。

发送HTML内容

nodemailer也支持发送HTML内容的电子邮件。在构建mailOptions对象时,将text修改为html,将电子邮件内容作为HTML代码发送。例如:

let mailOptions = {
    from: 'youremail@gmail.com',
    to: 'myfriend@yahoo.com',
    subject: 'Sending Email using Node.js',
    html: '<h1>Welcome</h1><p>That was easy!</p>'
};

支持附件

nodemailer还支持将文件作为电子邮件的附件发送。在创建附件时,可以指定附件的名称、类型等信息。例如:

let mailOptions = {
    from: 'youremail@gmail.com',
    to: 'myfriend@yahoo.com',
    subject: 'Sending Email using Node.js',
    html: '<h1>Welcome</h1><p>That was easy!</p>',
    attachments: [
        {
            filename: 'image.png',
            path: '/path/to/image.png'
        },
        {
            filename: 'pdf.pdf',
            path: '/path/to/pdf.pdf'
        }
    ]
};

在上面的代码中,我们添加了两个附件,一个是 image.png 图像文件,另一个是 pdf.pdf PDF文件。在附件对象中,filename指定了附件的文件名,path指定了附件的本地路径。

总结

以上是使用 nodemailer 发送电子邮件的基本使用攻略,包括发送文本、html内容、以及带附件的邮件。nodemailer还支持更多功能,如发送适用于多语言的内容和混合类型的电子邮件等。

示例

例1:使用QQ邮箱发送邮件

const nodemailer = require('nodemailer');

// 创建传输器
let transporter = nodemailer.createTransport({
    host: 'smtp.qq.com',
    port: 465,
    secure: true,
    auth: {
        user: '606672726@qq.com',
        pass: 'yourpassword'
    }
});

// 设置电子邮件内容
let mailOptions = {
    from: '606672726@qq.com',
    to: 'receiver@example.com',
    subject: 'Sending Email using Node.js',
    html: '<h1>Welcome</h1><p>That was easy!</p>'
};

// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        console.log(error);
    } else {
        console.log('Email sent: ' + info.response);
    }
});

例2:发送带附件的邮件

const nodemailer = require('nodemailer');

// 创建传输器
let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: 'youremail@gmail.com',
        pass: 'yourpassword'
    }
});

// 设置电子邮件内容
let mailOptions = {
    from: 'youremail@gmail.com',
    to: 'myfriend@yahoo.com',
    subject: 'Sending Email using Node.js',
    html: '<h1>Welcome</h1><p>That was easy!</p>',
    attachments: [
        {
            filename: 'image.png',
            path: '/path/to/image.png'
        },
        {
            filename: 'pdf.pdf',
            path: '/path/to/pdf.pdf'
        }
    ]
};

// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        console.log(error);
    } else {
        console.log('Email sent: ' + info.response);
    }
});

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs模块nodemailer基本使用-邮件发送示例(支持附件) - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • Nodejs中解决cluster模块的多进程如何共享数据问题

    在 Node.js 中使用 cluster 模块创建多进程时,如果涉及到多个进程需要共享某些数据,需要特别注意数据共享的问题。 1. 使用 IPC 通信实现数据共享 在使用 cluster 模块创建多进程时,可以使用 IPC(进程间通信)方式实现多个进程之间的数据共享。IPC 是 Node.js 的标准模块之一,它提供了多种进程间通信的方式,包括共享内存、套…

    node js 2023年6月8日
    00
  • JS中的二叉树遍历详解

    JS中的二叉树遍历详解 二叉树是一种非常重要的数据结构,它是由节点组成的树形结构,其中每个节点都有不超过两个子节点,分别称为左子节点和右子节点。在JavaScript中,我们通常使用嵌套对象的方式来实现二叉树。 安装 在使用JS实现二叉树遍历之前,我们需要安装一个依赖包:binary-tree。打开终端,输入以下命令进行安装。 npm install bin…

    node js 2023年6月8日
    00
  • 2014年最火的Node.JS后端框架推荐

    2014年最火的Node.JS后端框架推荐 Node.js是一个服务器端JavaScript环境,它以高效的事件驱动和非阻塞I / O模型而闻名,在现代Web应用程序开发中越来越受欢迎。但是,Node.js本身只是一个运行时环境,它需要框架来简化Web应用程序开发。在 2014年,以下是一些最流行的Node.js后端框架: 1. Express Expres…

    node js 2023年6月7日
    00
  • node.js到底要不要加分号浅析

    关于“node.js到底要不要加分号”的问题,其实并没有一定的规定。但是,在实际编写代码时,加不加分号会直接影响代码的可读性和可维护性,因此我们需要在实际项目中进行选择。 为什么会有这种争议 JavaScript语言规范并没有明确规定一行代码要不要加分号。但是,由于历史原因,JavaScript在执行时会自动加上分号。但是,在编写代码时,只写出语句的最后一行…

    node js 2023年6月7日
    00
  • TypeScript获取二叉树的镜像实例

    让我来为您详细讲解“TypeScript获取二叉树的镜像实例”的完整攻略。 什么是二叉树的镜像 在计算机科学中,二叉树(Binary Tree)是一种树形结构,在二叉树中,每个节点最多有两个子节点。 如下图所示,它是一颗二叉树。 4 / \ 2 7 / \ / \ 1 3 6 9 “镜像”是指将一棵二叉树的左右子树镜像对称,如下图所示: 4 / \ 7 2 …

    node js 2023年6月8日
    00
  • node.js中的http.response.end方法使用说明

    我来详细讲解一下node.js中的http.response.end方法使用说明。 http.response.end方法是什么? 在node.js中,当服务器收到客户端的请求后,可以使用http.response对象向客户端发送响应。而http.response对象中的end()方法就是用来结束响应并发送数据给客户端的。 http.response.end…

    node js 2023年6月8日
    00
  • 使用nodejs+express实现简单的文件上传功能

    实现一个简单的文件上传功能主要分为三个步骤: 创建上传表单 配置express路由 处理上传文件 下面逐步介绍实现方法。 创建上传表单 前端代码: <form action="/upload" method="post" enctype="multipart/form-data"> &l…

    node js 2023年6月8日
    00
  • 原生js实现的移动端可拖动进度条插件功能详解

    下面我将为您详细讲解 “原生js实现的移动端可拖动进度条插件功能详解” 的完整攻略。 插件功能介绍 本插件是一个移动端可拖动进度条插件,能够在移动端非常友好地实现拖动操作,并且可以支持自定义前景色、后景色等。通过本插件,我们可以快速地为我们的移动端网页添加进度条的功能,大大提升了用户体验度。 实现思路 本插件的实现主要是通过原生JS来实现的,其具体实现思路如…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部