在虽然日常生活中,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错误的解决)的更多相关文章

  1. NodeJS下的阿里云企业邮箱邮件发送问题

    还没有到11点,再顺带发一个上次碰到NodeJS的邮箱插件nodeMailer不支持阿里云邮件问题. 网上很多资料都默认使用QQ之类的邮箱,因为nodeMailer默认添加了QQ之类的SMTP地址,但 ...

  2. 在Foxmail中添加阿里云企业邮箱账号

    1.安装完成Foxmail之后,新建账号 输入阿里云邮箱地址和密码,点击创建 接受服务器类型你可以选择POP3或者IMAP,在这里我选择的是POP3 点击创建,大功告成. 为什么要写这篇文章呢? 因为 ...

  3. 记一次邮件推送的坑,c#基于smtp使用腾讯企业邮箱发送邮件总是失败的原因

    今天在弄企业邮箱推送的东西,原版代码是这样的 public void SendEmail(string title, string content) { try { MailMessage mailM ...

  4. 阿里云场景化阿里云企业数字化转型售前方法PSA

    阿里云场景化阿里云企业数字化转型售前方法PSA 目录 01 课程收获 理解企业数字化转型的概念.内涵.本质 了解企业数字化转型的要点.目标和切入点 掌握数字化转型项目售前阶段实践方法 场景化方案 阿里 ...

  5. Java实现网易企业邮箱发送邮件

    最近项目需要用网易企业邮箱发送邮件,特意来将实现过程记录一下: maven导入jar包 <!-- javax.mai 核心包 --> <dependency> <grou ...

  6. Python qq企业邮箱发送邮件

    Python qq企业邮箱发送邮件 进入客户端设置: 下面是代码部分: from email.header import Header from email.mime.text import MIME ...

  7. Django项目部署到阿里云服务器无法发送邮件,发送邮件超时问题解决

    前言 今天, 博主将写了好久的一个Django小项目尝试在阿里云部署上线,由于项目中需要发送邮件,博主调用了163邮箱接口,在本地测试邮件功能正常,可是上线后,邮件功能一直超时崩溃.在百度一番查资料后 ...

  8. 基于Apache的阿里云部署Node.js服务器(Windows环境)

    1 前言 由于nodejs项目对方开放了多个端口,而且阿里云上的Apache服务器(windows)已经挂载了网站,此时需要把此项目也挂上去,网上查询资料,方法略少,基本是基于nginx版本的. 2  ...

  9. Apache Commons Email 使用网易企业邮箱发送邮件

    最近使用HtmlEmail 发送邮件,使用网易企业邮箱,发送邮件,死活发不出去!原以为是网易企业邮箱,不支持发送邮箱,后面经过研究发现,是apache htmlEmail 的协议导致,apache E ...

随机推荐

  1. 导出Excel工具类

    import java.io.OutputStream; import java.lang.reflect.Method; import java.text.SimpleDateFormat; imp ...

  2. Java API使用

    汉化版Java API使用 首次打开出现的问题 在首次打开API时,可能你会遇见这样的问题. 经过查阅,发现是因为文档的权限问题,文档未解锁造成的.这时候只需要给给它权限就可以. 首先关闭程序,单击右 ...

  3. [原创]自定义参数静默方式安装JDK1.8

    摘要:当Java桌面程序开发完成做产品的时候,面对未知的安装环境,通常是编写一些预安装检测脚本/程序,让程序傻瓜化安装以便减少分发出去的产品带来 的未知工作量(安装答疑,操作系统问题引起安装失败等), ...

  4. 4.Redis客户端

    4.Redis客户端4.1 客户端通信协议4.2 Java客户端Jedis4.2.1 获取Jedis4.2.2 Jedis的基本使用方法4.2.3 Jedis连接池的使用方法4.2.4 Redis中P ...

  5. Scrapy Spider MiddleWare 设置

    # -*- coding: utf-8 -*- # Define here the models for your spider middleware # # See documentation in ...

  6. 网址导航18A

    [导航] hao268 百度导航 泡泡导航 35Q网址导航 [名站] 百度 网易 腾讯 新华 中新 凤凰 [邮箱] 163邮箱 126邮箱 Yeah邮箱 QQ邮箱 阿里邮箱 189邮箱 [新闻] 联合 ...

  7. python 12 模块与包

    一.不知道什么原则 python文件下面只写方法,所有的可直接执行的代码,都放在条件下 原因.该文件有可能被其他文件调用 二.eval() 将字符串转为相应的数据格式可以想象json转为map 三.模 ...

  8. css firefox火狐浏览器下的兼容性问题

    1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-al ...

  9. C#数据同步中基本步骤和用到的相关函数

    C#数据同步中基本步骤和用到的相关函数 数据同步对比步骤: 1.将两数据库中对应的数据表分别生成XML文件 /// <summary> /// 将一个DataTable以xml方式存入指定 ...

  10. py3.0第四天 函数,生成器迭代器等

    1.列表生成式,迭代器&生成器 孩子,我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我要求你把列表里的每个值加1,你怎么实现?你可能会想到2种方式 > ...