公司一直用邮箱做一些部门间协调的沟通留存,于是乎想用点“编程思维”做些“工作流”来自动化处理;但是公司用的邮箱有点难登呐!

选用的Nodejs 作为实现语言,那就用Nodemailer来发吧

上Demo代码测试一下

const nodemailer = require("nodemailer");// async..await is not allowed in global scope, must use a wrapper
async function main() {
// Generate test SMTP service account from ethereal.email
// Only needed if you don't have a real mail account for testing
// let testAccount = await nodemailer.createTestAccount(); // create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: "mail.***.com.cn",
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: 'username', // generated ethereal user
pass: '********', // generated ethereal password
},
ignoreTLS: true,
}); // send mail with defined transport object
let info = await transporter.sendMail({
from: '"Jimmy " <**@**.com.cn>', // sender address
to: "***@**.com.cn", // list of receivers
subject: "Hello ", // Subject line
text: "Hello world?", // plain text body
html: "<b>Hello world?</b>", // html body
date: new Date('2021-03-30 23:59:59'),
}); console.log("Message sent: %s", info.messageId);
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com> // Preview only available when sending through an Ethereal account
// console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
} main().catch(console.error);

但等都登不上去  哈哈哈哈果然是难得顺利

于是乎开始全网查资料.....

终于查到一些思绪

需要使用telnet登上服务器看看

telnet  smtp.****.com.cn 587
Connected to mail.****.cn.
Escape character is '^]'.
220 ex01.***.cn Microsoft ESMTP MAIL Service ready at Fri, 23 Apr 2021 18:08:13 +0800
ehlo
250-ex01.****.cn Hello [123.233.***.***]
250-SIZE 1073741824
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH GSSAPI NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST

原来如此  和一般的是不太一样

继续面向搜索引擎编程~~

找来找去没有比较好的轮子,差点就像自己来造起了

在翻翻文档瞧瞧

发现了个实现过的轮子 wow~

最终经过一番调教终于收到自己给自己发送的邮件

const nodemailer = require("nodemailer");
const nodemailerNTLMAuth = require('nodemailer-ntlm-auth'); // async..await is not allowed in global scope, must use a wrapper
async function main() {
// Generate test SMTP service account from ethereal.email
// Only needed if you don't have a real mail account for testing
// let testAccount = await nodemailer.createTestAccount(); // create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: "smtp.****.com.cn",
port: 587,
secure: false, // true for 465, false for other ports
auth: {
type: 'custom',
method: 'NTLM',
user: 'username', // generated ethereal user
pass: '*******', // generated ethereal password
},
ignoreTLS: true,
customAuth: {
NTLM: nodemailerNTLMAuth,
}
}); // send mail with defined transport object
let info = await transporter.sendMail({
from: '"Jimmy " <*****@*****.com.cn>', // sender address
to: "***@***.com.cn", // list of receivers
subject: "Hello ", // Subject line
text: "Hello world?", // plain text body
html: "<b>Hello world?</b>", // html body
date: new Date('2021-03-30 23:59:59'),
}); console.log("Message sent: %s", info.messageId);
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com> // Preview only available when sending through an Ethereal account
// console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
} main().catch(console.error);

打印邮件ID

Message sent: <466d4875-00e7-e9fa-11dd-e6b65d1b023f@***.com.cn>

OK!待续

EOF

用Nodemailer发个邮件不算难?的更多相关文章

  1. 【nodemailer】 之邮件附件

    nodemailer 续 之前对nodemailer做了一个简单的了解,这篇文章主要研究一下如何添加附加文件 测试代码 //Created by yyrdl on 2015/10/2. var nod ...

  2. SQLSERVER监控复制并使用数据库邮件功能发告警邮件

    SQLSERVER监控复制并使用数据库邮件功能发告警邮件 最近熬出病来了,都说IT行业伤不起,不说了,说回今天的正题 正题 上个月月底的时候因为要搬迁机房,需要将一个数据信息数据库先搬到我们的机房,然 ...

  3. PHPMailer发匿名邮件及Extension missing: openssl的解决

    原文链接:http://www.tongfu.info/phpmailer%E5%8F%91%E5%8C%BF%E5%90%8D%E9%82 %AE%E4%BB%B6%E5%8F%8Aextensio ...

  4. python发QQ邮件

    python发qq邮件相对比较简单,网上教程一大把:固定套路,后面封装看自己怎么方便可以怎样进行封装:原版代码如下: """ # -*- coding : utf-8 - ...

  5. nodemailer 发邮件

    var transporter = nodemailer.createTransport({//v1.0 above do not use 'SMTP' as first param host: &q ...

  6. nodeJs的nodemailer发邮件报错hostname/IP doesn't match certificate's altnames怎么解决?

    今天在开发过程中碰到一个问题,即使用node发送邮件时报错hostname/IP doesn't match certificate's altnames,在网上查了解决办法有两个, 加rejectU ...

  7. 使用Spring整合javaMail发用邮件

    1.导入javamail.jar        自行百度下载 2.使用模板发送邮件架包 freemarker.jar 3.Spring配置文件  以及架包这里就不需要说了吧,如果不明白的发我Email ...

  8. mailx 乱码,sendmail发html邮件,脚本开机启动

    echo "yes"|mailx -s "我" -S ttycharset=utf-8 -S sendcharsets=utf-8 -S encoding=ut ...

  9. 发测试邮件或垃圾邮件node脚本

    npm install nodemailer 执行后,指定目录下会出现node_modules模块,再相同目录下,创建main.js,js代码如下: var nodemailer = require( ...

  10. postfix疯狂外发垃圾邮件

    分析 一.查找main.cf配置文件 localhost# find / -name main.cf /etc/postfix/main.cf 二.打开/etc/postfix/main.cf来看看. ...

随机推荐

  1. C++练习6 不同参数的传递方式

    当函数的形参是变量时,函数内的操作是只对形参的操作,并不会对实参造成影响 当函数的形参是引用时,在函数内对形参操作的同时也会对实参造成影响 1 #include <iostream> 2 ...

  2. ES6的Set详解

    数组去重 let arr = [ 1,2,3,4,5,3,2 ] // 数组去重 // 方法一 let newArr = [new Set(arr)] console.log(newArr); // ...

  3. 一文详解SpEL表达式注入漏洞

    摘要:本文介绍了SpEL表达式以及常见的SpEL注入攻击,详细地介绍了部分漏洞攻击实例以及常用的漏洞检测与防御手段. 本文分享自华为云社区<SpEL表达式注入漏洞分析.检查与防御>,作者: ...

  4. html+css+js实现一个简易日历

    0.效果预览 只实现了日历最基础的功能,当前日期红色显示,可通过上方的左右按钮查看上一月或下一月的日期. 1.HTML部分 1 <body> 2 <div id="cldF ...

  5. python下载图片实现方法

    转载: https://www.jb51.net/article/119178.htm

  6. php中 mysql 中文乱码解决办法

     首先要保证是utf-8编码或者支持中文的编码 2.Windows下修改方法 MySQL安装目录下的my-default.ini改为my.ini文件 [client]节点 default-charac ...

  7. SpringMVC:RESTful案例

    目录 相关准备 功能清单 具体功能:访问首页 ①配置view-controller ②创建页面 具体功能:查询所有员工数据 ①控制器方法 ②创建employee_list.html 具体功能:删除 ① ...

  8. dotnet总结

    初衷: 搞了几年.Net ,一直没在博客园做过系统的总结,并打算按照下面的结构来写 语言层面 类型系统 [查看]: https://www.cnblogs.com/francisXu/p/136027 ...

  9. 魔兽世界2009年更换代理,九城CEO至全体员工公开信

    尊敬的全体第九城市员工, 最近一段时间以来,有关九城将要失去<魔兽世界>代理权的说法甚嚣尘上,各种传言四起.在目前来自<魔兽世界>的收入仍占九城收入绝大部分的情况下,对于外界的 ...

  10. Visual Studio Code C / C++ 语言环境配置的历程

    前言 从大一开始学习c++用的dev-c++,后来看到老师用的是vs  code,实在是馋它的颜值便去下了vs  2017.至于为什么下载vs 2017呢?是因为下载的时候我以为他们是一样的,便下了v ...