使用nodejs接收邮箱消息
时间: 2023-08-03 15:02:37 浏览: 56
要在 Node.js 中接收邮箱消息,可以使用 `imap` 或 `pop3` 协议。
以下是一个使用 `imap` 协议接收邮件的例子:
```javascript
const Imap = require("imap");
const simpleParser = require("mailparser").simpleParser;
const imap = new Imap({
user: "your_email@gmail.com",
password: "your_email_password",
host: "imap.gmail.com",
port: 993,
tls: true,
});
imap.once("ready", () => {
imap.openBox("INBOX", false, (err, box) => {
if (err) throw err;
// 搜索最新的10封邮件
imap.search(["UNSEEN", ["SINCE", "May 20, 2021"]], (err, results) => {
if (err) throw err;
const f = imap.fetch(results, { bodies: "" });
f.on("message", (msg, seqno) => {
console.log(`Message #${seqno}`);
const buffer = [];
msg.on("body", (stream, info) => {
stream.on("data", (chunk) => {
buffer.push(chunk.toString("utf8"));
});
stream.once("end", () => {
const text = buffer.join("");
simpleParser(text, (err, mail) => {
if (err) throw err;
console.log(`Subject: ${mail.subject}`);
console.log(`From: ${mail.from.text}`);
console.log(`To: ${mail.to.text}`);
console.log(`Text: ${mail.text}`);
});
});
});
msg.once("end", () => {
console.log("--------------------");
});
});
f.once("error", (err) => {
console.error(err);
});
f.once("end", () => {
imap.end();
});
});
});
});
imap.once("error", (err) => {
console.error(err);
});
imap.once("end", () => {
console.log("Connection ended");
});
imap.connect();
```
在上面的例子中,需要将 `your_email@gmail.com` 和 `your_email_password` 替换为你的 Gmail 邮箱和密码。同时,你也可以修改 `imap.search` 中的搜索条件,例如 `["UNSEEN", ["SINCE", "May 20, 2021"]]` 表示搜索最新的10封未读邮件,且时间在 2021 年 5 月 20 日之后。
需要注意的是,如果你使用的是 Gmail 邮箱,需要将你的 Gmail 邮箱设置中的“启用 IMAP”选项打开,否则无法使用 `imap` 协议接收邮件。
希望这个例子可以帮助到你。