nodejs——发送邮件(带附件)
用到的包是 nodemailer,简单,有效。
1、auth 中的 pass,是指“邮箱第三方登录授权码”,如何获取授权码,以QQ邮箱为例,请点击:http://jingyan.baidu.com/article/fedf0737af2b4035ac8977ea.html
2、若message中的text和html同时存在,收件方只显示html内容。
3、message.html 中可以嵌套图片,配置cid作为图片的唯一引用地址,指的是发送邮箱附件时设置的cid,如下例中,上传的两张图片cid分别设置为0001和0002,在message.html中img标签scr属性分别指向这两个cid。
4、支持国内的QQ、163等邮箱,具体还支持哪些邮箱服务,请点击:https://github.com/nodemailer/nodemailer-wellknown/blob/master/services.json
5、若有用,请点个推荐~ :)
'use strict' var bunyan = require('bunyan');
var nodemailer = require('nodemailer'); var transporter = nodemailer.createTransport({
service: 'QQ',
auth: {
user: '944xxxx69@qq.com',//发送者邮箱
pass: 'czboxxxxxqvmbebd' //邮箱第三方登录授权码
},
logger: bunyan.createLogger({
name: 'nodemailer'
}),//打印日志
debug: true
},{
from: '944xxxx69@qq.com',//发送者邮箱
headers: {
'X-Laziness-level': 1000
}
}); console.log('SMTP Configured'); var message = {
// Comma separated lsit of recipients 收件人用逗号间隔
to: '12xxxx101@qq.com', // Subject of the message 信息主题
subject: 'Nodemailer is unicode friendly', // plaintext body
text: 'Hello to myself~', // Html body
html: '<p><b>Hello</b> to myself <img src= "cid:00001"/></p>' +
'<p>Here\'s a nyan car for you as embedded attachment:<br/><img src="cid:00002"/></p>', // Apple Watch specific HTML body 苹果手表指定HTML格式
watchHtml: '<b>Hello</b> to myself', // An array of attachments 附件
attachments: [
// String attachment
{
filename: 'notes.txt',
content: 'Some notes about this e-mail',
contentType: 'text/plain' // optional,would be detected from the filename 可选的,会检测文件名
},
// Binary Buffer attchment
{
filename: 'image.png',
content: Buffer.from('iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/' +
'//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U' +
'g9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC', 'base64'),
cid: '00001' // should be as unique as possible 尽可能唯一
},
// File Stream attachment
{
filename: 'nyan cat.gif',
path: __dirname + '/appData/nyan.gif',
cid: '00002' // should be as unique as possible 尽可能唯一
}
] }; console.log('Send Mail');
transporter.sendMail(message, (error, info) => {
if (error) {
console.log('Error occurred');
console.log(error.message);
return;
}
console.log('Message sent successfully!');
console.log('Server responded with "%s"', info.response);
transporter.close();
});
接收到的邮件结果:
nodejs——发送邮件(带附件)的更多相关文章
- Java发送邮件(带附件)
实现java发送邮件的过程大体有以下几步: 准备一个properties文件,该文件中存放SMTP服务器地址等参数. 利用properties创建一个Session对象 利用Session创建Mess ...
- centos 使用mutt发送邮件带附件
1.安装mutt工具 yum install -y mutt 2.使用mutt发邮件并带附件echo "统计日志" | /usr/bin/mutt -s "统计日志&qu ...
- 使用System.Net.Mail中的SMTP发送邮件(带附件)
System.Net.Mail 使用简单邮件传输协议SMTP异步发送邮件 想要实现SMTP发送邮件,你需要了解这些类 SmtpClient :使用配置文件设置来初始化 SmtpClient类的新实例. ...
- python 发送邮件 带附件
# coding:utf-8 # __author__ = 'Mark sinoberg' # __date__ = '2016/5/26' # __Desc__ = 实现发送带有各种附件类型的邮件 ...
- java发送邮件带附件
package com.smtp; import java.util.Vector; public class MailBean { private String to; // 收件人 private ...
- Python发送邮件(带附件的)
有时候做自动化测试任务,任务完成后,需要将结果自动发送一封邮件,这里用到smtplib模块,直接导入就行,这里以163邮箱为例,需要用到授权码,我用类写一下: 如果是发送qq邮箱,要将smtp 改成s ...
- python3.7发送邮件带附件
代码: 1 # -*- coding: utf-8 -*- 2 3 import smtplib, ssl 4 from email.mime.text import MIMEText 5 from ...
- VC++ 使用ShellExecute函数调用邮箱客户端发送邮件(可以带附件)
之前写过一篇博文,通过MAPI实现调用邮箱客户端发送邮件带附件,当时对ShellExecute研究不深,以为ShellExecute不能带附件,因为项目需求原因(MAPI只能调用Foxmail和O ...
- php中PHPMailer发送带附件的电子邮件方法
摘要: 本文讲的是php中PHPMailer发送带附件的电子邮件方法, .首先到http://phpmailer.worxware.com/ 下载最新版本的程序包 2.下载完成后,找到class.ph ...
- Java 阿里云 邮件(带附件)发送
简单的使用. 阿里云每天免费200封 1000封才2块钱..465端口 使用正常25 端口 不正常 package com.gwzx.framework.utils; import java.util ...
随机推荐
- Linux运维常用150个命令
Linux运维常用150个命令 转载自:www.cnblogs.com/bananaaa/p/7774467.html 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更 ...
- opencv-python教程学习系列13-图像平滑
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像平滑,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 系统: ...
- No.02——第一次使用Android Studio,并创建出Hello World
1.第一次打开Studio 2.点击创建新项目 然后填上相关信息,注意在Company Domain(公司域名)地方的填写,不同于Eclipse对应实际电脑中文件夹,而是在你所选择的Project文件 ...
- [LeetCode&Python] Problem 496. Next Greater Element I
You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of n ...
- CodeForces - 140E:New Year Garland (组合数&&DP)
As Gerald, Alexander, Sergey and Gennady are already busy with the usual New Year chores, Edward has ...
- Linux下idea选择tomcat server 报错Warning the selected directory is not a valid tomcat home
这是文件的权限问题,在tomcat的目录下执行以下代码 sudo chmod 777 -R tomcat8/ 然后再去idea中配置即可
- centos安装redis +RedisDesktopManager连接redis
1.先到Redis官网(redis.io)下载redis安装包 wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xzf red ...
- mysql安装错误解决办法
在我们装mysql数据库时,出现安装失败是一件非常令人烦恼的事情,接下来小编就给大家带来在我们安装mysql数据库失败的一些解决方法,感兴趣的小伙伴们可以参考一下 mysql数据库安装不了了!my ...
- 初学者必读原生AJAX-异步的javaScript和XML
1.前台页面 <form action="#" method="post"> 姓名<input type="text" n ...
- 批处理(bat)命令学习的一些总结
这篇笔记是我对批处理学习的一些总结,能在系统帮助里找到的内容我就不写了,太偏门的也不写,只写些个人感觉很好用的技巧,大部分属于整理 一.set 篇: 1.set(无开关) set .=test set ...