基于nodemailer使用阿里云企业邮箱发送邮件(526错误的解决)
在虽然日常生活中,QQ,微信等即时聊天工具几乎主导了人们的生活,但是邮件依然是现代生活不可缺少的一部分。这篇文章主要讲述使用node.js 中的nodemail模块操作阿里云的企业邮箱发送邮件
(526错误的解决办法请前往2.nodemail的红字部分查看)
1.拥有一个阿里云的企业邮箱
首先登录阿里云官网,在右上角可以进入阿里云邮箱

然后就可以进入企业邮箱的登录界面

这里大概讲一下阿里云的企业邮箱的获取方法,笔者是在买ECS服务器的时候阿里云赠送的(已经使用过的请自动忽略)
如果你也有赠送的,但是之前没有使用过的同学
可以在控制台当中的云市场中

在云市场中的域名下面的分类中可以找到企业邮箱板块

在管理中你可以看到你的企业邮箱的相关信息

你可以在这里进入邮箱的登录页面

可以在这里设置邮箱的解析域名
也就是可以将企业邮箱解析到你的域名上
2.nodemailer
准备好阿里云企业邮箱之后,先了解一下我们会用到的API及参数设置
这里就不讲nodemailer的安装了,不会的朋友可以自行百度一下,有许多相关的博客文章写的挺好的
在这里我截了几张官网上的图大概讲解一下Api
这里主要讲一下SMTP服务器
其他的邮件服务器操作与之类似

下面是定义一个Smtp的对象

后面邮件的发送都是通过这个对象来操作
先看一下这个options里面的参数

至于下面的安全传输层协议,我们需要设置的只需要将secure设置为true即可
host参数 阿里云企业邮箱STMP服务器地址为 smtp.mxhichina.com 其他的邮件服务器地址请前往官网查看https://help.aliyun.com/knowledge_detail/36576.html?spm=5176.8071678.877627.duankou.75556b384n2RqH
这里我还是贴一张图

这里的加密端口也就是我们将secure参数设置为true后所使用的端口
然后在auth参数中一般使用user、pass两个参数
user指的是邮箱的登录账号
pass是邮箱账号的登录密码(QQ邮箱等一些邮箱需要使用授权码的方式登录,授权码是个坑望诸君谨慎行事)
这里插播一段526错误的解决办法,当时这个身份验证的错误卡了笔者很久,故花一些文字记录一下
526错误是身份验证错误,官网上的说法是服务器地址不对、用户名错误、或者用户名与密码不匹配
在查询一些博客后,526报错仍未解决(此处解决情况可能为个例,也许不具备普遍性,希望大家能少踩坑)
我这里的解决办法是用阿里云企业邮箱的管理员账户,创建一个子账户,使用这个子账户进行网站的发信
(再说一个坑的地方就是阿里云的子账户分配后需要修改子账户的密码,他有一个提示说不能使用域名作为密码,这里只要密码中包含了域名比如www.taobao.com 的域名只要你密码中有taobao就过不了验证,是真的坑!!)
let transporter = nodemailer.createTransport({
"host": "smtp.mxhichina.com",
"port": 465,
"secure": true, // use SSL
"auth": {
"user": 登录阿里云企业邮箱的账号(和from的内容一致),
"pass": 阿里云企业邮箱对应账号的密码 // password
}
});
let mailOptions = {
from: 发信邮箱(注意发信邮箱要和阿里云企业邮箱的账号一致),
to: 收件人邮箱,
subject:邮件主题,
text: 邮件内容,
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
});
通过这里的代码就可以发送邮箱了,亲测有效
至于为什么管理员账号不能发信,可能需要特殊的设置或者权限吧(笔者猜测)
有知道为啥的大佬欢迎在评论区给我留言
基于nodemailer使用阿里云企业邮箱发送邮件(526错误的解决)的更多相关文章
- NodeJS下的阿里云企业邮箱邮件发送问题
还没有到11点,再顺带发一个上次碰到NodeJS的邮箱插件nodeMailer不支持阿里云邮件问题. 网上很多资料都默认使用QQ之类的邮箱,因为nodeMailer默认添加了QQ之类的SMTP地址,但 ...
- 在Foxmail中添加阿里云企业邮箱账号
1.安装完成Foxmail之后,新建账号 输入阿里云邮箱地址和密码,点击创建 接受服务器类型你可以选择POP3或者IMAP,在这里我选择的是POP3 点击创建,大功告成. 为什么要写这篇文章呢? 因为 ...
- 记一次邮件推送的坑,c#基于smtp使用腾讯企业邮箱发送邮件总是失败的原因
今天在弄企业邮箱推送的东西,原版代码是这样的 public void SendEmail(string title, string content) { try { MailMessage mailM ...
- 阿里云场景化阿里云企业数字化转型售前方法PSA
阿里云场景化阿里云企业数字化转型售前方法PSA 目录 01 课程收获 理解企业数字化转型的概念.内涵.本质 了解企业数字化转型的要点.目标和切入点 掌握数字化转型项目售前阶段实践方法 场景化方案 阿里 ...
- Java实现网易企业邮箱发送邮件
最近项目需要用网易企业邮箱发送邮件,特意来将实现过程记录一下: maven导入jar包 <!-- javax.mai 核心包 --> <dependency> <grou ...
- Python qq企业邮箱发送邮件
Python qq企业邮箱发送邮件 进入客户端设置: 下面是代码部分: from email.header import Header from email.mime.text import MIME ...
- Django项目部署到阿里云服务器无法发送邮件,发送邮件超时问题解决
前言 今天, 博主将写了好久的一个Django小项目尝试在阿里云部署上线,由于项目中需要发送邮件,博主调用了163邮箱接口,在本地测试邮件功能正常,可是上线后,邮件功能一直超时崩溃.在百度一番查资料后 ...
- 基于Apache的阿里云部署Node.js服务器(Windows环境)
1 前言 由于nodejs项目对方开放了多个端口,而且阿里云上的Apache服务器(windows)已经挂载了网站,此时需要把此项目也挂上去,网上查询资料,方法略少,基本是基于nginx版本的. 2 ...
- Apache Commons Email 使用网易企业邮箱发送邮件
最近使用HtmlEmail 发送邮件,使用网易企业邮箱,发送邮件,死活发不出去!原以为是网易企业邮箱,不支持发送邮箱,后面经过研究发现,是apache htmlEmail 的协议导致,apache E ...
随机推荐
- ios下,<input type="checkbox"> 点击时出现黑色块
ios下,<input type="checkbox"> 点击时出现黑色块如下图 解决方法:
- C++实现词法分析器
#include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; ]= ...
- Boto3
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.htmlboto3 安装pip install bot ...
- MySQL8.0安装
背景 MySQl 8.0 出来已经有段时间了,据说性能有很大提高,在网上看过很多安装教程,大同小异, 在这里亲身实战实战下MySQL8.0在Windows10系统下的安装,以下为详细的安装步骤. 1. ...
- 在MyEclipse中使用spring-boot+mybatis+freemarker实现基本的增删改查
一.基本环境 二.创建实体类 1.User.java package bjredcross.rainbowplans.model; import bjredcross.rainbowplans.com ...
- 生产与学术之Pytorch模型导出为安卓Apk尝试记录
生产与学术 写于 2019-01-08 的旧文, 当时是针对一个比赛的探索. 觉得可能对其他人有用, 就放出来分享一下 生产与学术, 真实的对立... 这是我这两天对pytorch深度学习->a ...
- LoadRunner如何监控Linux下的系统资源
1. 安装rsh,rsh-server [root@localhost /]# yum install rsh [root@localhost /]# yum install rsh-server 或 ...
- Ubuntu 18.04 下如何配置mysql 及 配置远程连接
首先是大家都知道的老三套,啥也不说上来就放三个大招: sudo apt-get install mysql-server sudo apt isntall mysql-client sudo apt ...
- Android自动化之Monkey测试(二)
本文主要从以下方面进行分享. 一.查看应用包名二.Monkey启动三.Monkey停止四.Monkey命令五.日志分析 一.查看应用包名 大多数时候,我们都是对特定的应用进行monkey测试,因此需要 ...
- install pycurl
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1src/pycurl.h:164:28: fatal error: ope ...