我正在尝试从邮件正文中获取URL超链接。我能够使用简单的解析器,并将邮件转换为“文本为HTML”。完成此步骤后,我不确定如何仅复制存在的超链接。谁能帮忙
正在使用node.js根据站点https://github.com/mscdex/node-imap#connection-events编写代码。这是我迄今为止写的东西
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.includes(urlRegex)){link.open(); }
我不确定我要去哪里。我认为我可能正在尝试将整个邮件文本转换为HTML,然后将其接收。
任何人都可以从邮件正文中获取URL超链接的解决方案吗?
P.S:超链接只能是超链接,也可以是按钮。
有没有可能?
很抱歉问题的长度。