🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)
🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)

🔧 Programmierung 🕛 vor 1 Jahr 2 Min Lesezeit
0

Search emails with node-imap

↗ Quelle (dev.to)
🗣️ Stimme:

Why Needed emails search with IMAP. Because of the limitation of UI basis search can be slow and others tools like mailinator, maildrops are sometimes slow and not accurately work as expected.



So why actually needs email search functionalities in automation? I want to implement signup verification features tested with automation. So once someone signup with automation I have to check email for new email and signup tokens for verification.



So I used node-imap and hostinger.in email provider because Gmail and Outlook they don't provide Imap



So I used node-imap npm package to active this and here is the code




CODE
import Imap, { Config } from 'node-imap';
import { appEnv } from './app-env';

const imapConfig: Config = {
user: appEnv.IMAP_USER,
password: appEnv.IMAP_PASSWORD,
host: appEnv.IMAP_HOST,
port: appEnv.IMAP_PORT,
tls: appEnv.IMAP_TLS,
};

interface Message {
seqno: number;
attributes: any;
body: string;
}

export const readEmails = ({ searchDate }: { searchDate: string }): Promise<Message[]> => {
return new Promise((resolve, reject) => {
const imap = new Imap(imapConfig);
const messages: Message[] = [];

imap.once('ready', () => {
// console.log('imap ready');

imap.openBox('INBOX', true, (err, box) => {
if (err) {
imap.end();
return reject(err);
}
// console.log('total', box.messages.total);

imap.search(['ALL', ['SINCE', searchDate]], (err, results) => {
if (err) {
imap.end();
return reject(err);
}

const fetch = imap.fetch(results, { bodies: '' });

fetch.on('message', (msg: any, seqno: number) => {
// console.log('Message #%d', seqno);
const prefix = '(#' + seqno + ') ';
let messageBody = '';

msg.on('body', (stream: any) => {
let buffer = '';
stream.on('data', (chunk: any) => {
buffer += chunk.toString('utf8');
});
stream.on('end', () => {
messageBody = buffer;
// console.log(prefix + 'Body [%s]', buffer);
});
});

msg.once('attributes', (attrs: any) => {
messages.push({
seqno,
attributes: attrs,
body: messageBody,
});
});

msg.once('end', () => {
// console.log(prefix + 'Finished');
});
});

fetch.once('error', (err) => {
console.error('Fetch error:', err);
imap.end();
reject(err);
});

fetch.once('end', () => {
// console.log('Done fetching all messages!');
// console.log('Fetched messages:', messages);
imap.end();
resolve(messages);
});
});
});
});

imap.once('error', (err: Error) => {
console.error('IMAP error:', err.message);
reject(err);
});

imap.once('end', () => {
// console.log('Connection ended');
});

imap.connect();
});
};







This function is re-usable. And here is the callback




CODE
readEmails({ searchDate: 'Nov 24, 2024'})
.then((messages) => {
console.log('Done fetching all messages!', messages.length);
console.log('Fetched messages:', messages);
})
.catch((err) => {
console.error('Error fetching messages:', err);
});



Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Hackers Just Poisoned the Rust Supply Chain | Threat Wire
1 Quelle
Hackers Found a Way Into Humanoid Robots | Threat Wire
1 Quelle
Bits und so #1021 (Passwort für Laufwerk)
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Search emails with node-imap

Thematisch verwandte Begriffe: Search, emails, with, nodeimap · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...