如何使用node.js和/或javascript从电子邮件正文中获取URL超链接

时间:2019-02-10 10:14:37

标签: javascript node.js appium

我正在尝试从邮件正文中获取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:超链接只能是超链接,也可以是按钮。

有没有可能?

很抱歉问题的长度。

0 个答案:

没有答案