Я начал работать с Electron и пытаюсь создать с его помощью почтовый клиент. Я настроил свой базовый c HTML и установил окно в Electron.
Теперь я работаю над получением писем от моей учетной записи gmail (которая работает). Хотя после долгих поисков я нашел следующий код для получения тела (содержимого) электронного письма. Теперь я хотел бы получить тело с тегами HTML и стилем, а не только с текстом. Потому что то, что у меня есть сейчас, дает некоторые странные вещи, такие как '= C2 = A0' (не знаю, что это значит)
Мой текущий код:
window.addEventListener('load', function () {
const Imap = require('imap'),
inspect = require('util').inspect;
let buffer = '';
let myMap;
let imap = new Imap({
user: 'myemail@gmail.com',
password: 'apassword4email',
host: 'imap.gmail.com',
port: 993,
tls: true,
tlsOptions: {
rejectUnauthorized: false,
},
connTimeout: 10000,
authTimeout: 5000,
debug: console.log,
mailbox: 'INBOX',
searchFilter: ['SEEN', 'UNSEEN', 'FLAGGED'],
markSeen: false,
mailParserOptions: { steamAttachments: true },
attachments: true,
attachmentOptions: { directory: 'attachments/' },
});
function openInbox(cb) {
imap.openBox('INBOX', false, cb);
}
imap.once('ready', function () {
openInbox(function (err, box) {
if (err) throw err;
imap.search(['SEEN', ['SINCE', 'May 25, 2020']], function (err, results) {
if (err) throw err;
let f = imap.fetch(results, { bodies: '1', markSeen: false });
f.on('message', function (msg, seqno) {
console.log('Message #' + seqno);
console.log('Message type' + msg.text);
let prefix = '(#' + seqno + ') ';
msg.on('body', function (stream, info) {
stream.on('data', function (chunk) {
buffer += chunk.toString('utf8');
console.log('BUFFER' + buffer);
});
stream.once('end', function () {
if (info.which === '1') {
console.log('BUFFER' + buffer);
}
});
console.log(prefix + 'Body');
});
msg.once('attributes', function (attrs) {
console.log(prefix + 'Attributes: %s', inspect(attrs, false, 8));
});
msg.once('end', function () {
console.log(prefix + 'Finished');
});
});
f.once('error', function (err) {
console.log('Fetch error: ' + err);
});
f.once('end', function () {
console.log('Done fetching all messages!');
imap.end();
});
});
});
});
imap.once('error', function (err) {
console.log(err);
});
imap.once('end', function () {
console.log('Connection ended');
});
imap.connect();
});
Сейчас я просто получаю все письма, которые я видел сегодня (потому что в учетной записи, которую я использую для тестирования, более 10000 писем)