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

选用的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. Jemeter参数

    以下是转载内容,仔细看过后,觉得用得最多的应该是csvread函数.用户自定义变量以及CSV DATA CONFIG控制器这几个,但是做练习之后,在结果树和聚合报告中怎么查看执行结果是个问题,没找到对 ...

  2. 重学SpringBoot. step4 Redis的应用

    Redis的应用 Redis支持的七种数据类型:字符串.散列.列表(链表).集合.有序集合.基数和地理位置,具体用Java怎么操作其实可以直接看redisTemplate的源代码. Redis引出来的 ...

  3. ubuntu安装ROBOWARE

    https://github.com/tonyrobotics/RoboWare/ https://blog.csdn.net/lixujie666/article/details/80139112 ...

  4. SpringBoot整合Mybatis、SpringBoot整合Spring Data JPA

    Springboot Mybatis <?xml version="1.0" encoding="UTF-8"?> <project xmln ...

  5. 什么是MES(Manufacturing Execution System)

    "本文仅代表个人观点" 本文档将提供一个高层次的概述,以帮助阐明什么是MES,并触及通常被归为MES的周边领域. 整体情况 制造执行系统或MES软件是旨在帮助公司管理其制造过程的工 ...

  6. Distinct Paths

    代码 #include<cstdio> using namespace std; const int N = 20 , mod = 1e9 + 7 , K = 10; int f[N + ...

  7. 调式源码解决 seata 报错 can not get cluster name 问题

    最近在使用Spring Cloud整合分布式事务seata,项目启动之后,控制台一直报错: can not get cluster name in registry config 'service.v ...

  8. 内网安全之:MS14-068 Kerberos 域用户提权漏洞

    内网安全之:MS14-068 Kerberos 域用户提权漏洞 目录 内网安全之:MS14-068 Kerberos 域用户提权漏洞 0 漏洞说明 (MS14-068:CVE-2014-6324) 1 ...

  9. PostGIS之地理坐标

    1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...

  10. LeetCode-1994 好子集的数目

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/the-number-of-good-subsets 题目描述 给你一个整数数组 nums .如果 ...