Как получить гиперссылку URL из тела письма, используя node.js и / или javascript - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь получить гиперссылку 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: гиперссылка может быть только гиперссылкой или кнопкой.

Есть ли возможность?

Извините за длину в вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...