node mailer & email bot
node mailer & email bot
https://github.com/nodemailer/nodemailer
https://www.npmjs.com/package/nodemailer
/* eslint no-console: 0 */
'use strict';
const nodemailer = require('../lib/nodemailer');
async function main() {
// Create a SMTP transporter object
let transporter = nodemailer.createTransport({
sendmail: true,
newline: 'windows',
logger: false
});
// Message object
let message = {
from: 'Andris <andris@kreata.ee>',
// Comma separated list of recipients
to: 'Andris Reinman <andris.reinman@gmail.com>',
bcc: 'andris@ethereal.email',
// Subject of the message
subject: 'Nodemailer is unicode friendly ✔',
// plaintext body
text: 'Hello to myself!',
// HTML body
html:
'<p><b>Hello</b> to myself <img src="cid:note@example.com"/></p>' +
'<p>Here\'s a nyan cat for you as an embedded attachment:<br/><img src="cid:nyan@example.com"/></p>',
// An array of attachments
attachments: [
// String attachment
{
filename: 'notes.txt',
content: 'Some notes about this e-mail',
contentType: 'text/plain' // optional, would be detected from the filename
},
// Binary Buffer attachment
{
filename: 'image.png',
content: Buffer.from(
'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/' +
'//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U' +
'g9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC',
'base64'
),
cid: 'note@example.com' // should be as unique as possible
},
// File Stream attachment
{
filename: 'nyan cat ✔.gif',
path: __dirname + '/assets/nyan.gif',
cid: 'nyan@example.com' // should be as unique as possible
}
]
};
let info = await transporter.sendMail(message);
console.log('Message sent successfully as %s', info.messageId);
}
main().catch(err => {
console.error(err.message);
process.exit(1);
});
weather api
fetch("https://tianqi.moji.com/weather/china/shanghai/pudong-new-district", { mode: "no-cors", })
.then(res => {
console.log(`res =`, res)
return res.text();
})
.then(html => {
console.log(`html =`, html)
const parser = new DOMParser();
const dom = parser.parseFromString(html, "text/html");
console.log(`html dom =`, dom)
// api data
const todayWeather = dom.querySelectorAll(`.days`)[0].innerText.replace(/[\r\n]/ig, `,`).split(`,`);
// ["今天", "阴", "21° / 30°", "南风", "4-5级", "55 良"]
console.log(`todayWeather api datas =`, todayWeather);
})
.catch(err => {
console.error('Failed to fetch html page content!', err);
});
demo
https://segmentfault.com/a/1190000012251328
https://github.com/growvv/weather-bot
https://github.com/growvv/weather-bot/blob/master/.github/workflows/SendMail.yml
refs
©xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/12818338.html
未经授权禁止转载,违者必究!