Я пытаюсь получить гиперссылку URL из тела письма.Я могу использовать простой парсер и конвертировать почту в «текст как HTML».После этого шага я не уверен, как скопировать только имеющуюся гиперссылку.Может кто-нибудь, пожалуйста, помогите
Код пишется в соответствии с сайта: https://github.com/mscdex/node-imap#connection-events с использованием node.js.Ниже то, что я написал до даты
imapcheck.once('mail-ready',()=>{
openInbox((err,box)=>{
if(err)throw err;
imapcheck.search(['AND',['HEADER','SUBJECT','Test-Test'],
['HEADER','FROM','test-test@gmail.com']]), (err,results)=>{
if(err)throw err;
var f = imapcheck.fetch(results,{bodies:''})
f.on('message',(msg,seqno)=>{
msg.on('body',(stream,info)=>{
console.log(prefix + 'Body');
if (info.which.includes("Signup Email")){
streamtext =
fs.createWriteStream("emailtext.txt");
streamtext.setDefaultEncoding("ascii");
streamtext.on('data',(err,data)=>{
if(err)throw err;
simpleparser(email).then((mail_object)=>{
console.log("From:"+mail_object.from.value);
console.log("To:"+mail_object.to.value);
console.log("Subject:"+mail_object.subject.value);
console.log("Text body:"+mail_object.textAsHtml);
var texthtml = mail_object.textAsHtml;
var urlRegex = new RegExp("^(http|https|ftp|)\://|
[a-zA-Z0-9\-\.]+\.[a-zA-Z](:[a-zA-Z0-9]*)?/?([a-
zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\
(\s]$");
if(texthtml.includes(urlRegex)){
link.open();
}
}).catch((err)=>{
console.log("An error occured:"+err.msg);
});
});
}
});
msg.once('end',()=>{
console.log(prefix + 'Finished');
});
});
f.once('error',(err)=>{
console.log("Fetch Error:"+err);
});
f.once('end',()=>{
console.log("Done fetching the message");
imapcheck.end;
});
});
}); });
Я застрял в этом: if (texthtml.include (urlRegex)) {link.open ();}
Я не уверен, где я иду не так.Я думаю, что, вероятно, я пытаюсь преобразовать весь текст почты в HTML, а затем принять его.
Может кто-нибудь помочь с решением, просто взяв гиперссылку URL из тела письма.
PS: гиперссылка может быть только гиперссылкой или кнопкой.
Есть ли возможность?
Извините за длину в вопросе.