公司一直用邮箱做一些部门间协调的沟通留存,于是乎想用点“编程思维”做些“工作流”来自动化处理;但是公司用的邮箱有点难登呐!
选用的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
原文:https://www.cnblogs.com/jso0/p/14699469.html