Built motion from commit 14588770.|2.5.38
[motion2.git] / server / services / email / lib / utils.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x5fdc=['substring','indexOf','split','join','Anonymous','length','pop','isEmpty','anonymous','@xcally.com','test','html','replace','<img','attachments','forEach','push','filename','_SRC','_IMG','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','originTo','message','originCc','includes','bcc','attach','attachment','attachment-','format','%s-%s','now','root','writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','from','subject','messageId','inReplyTo','YYYY-MM-DD\x20HH:mm:ss','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','BodyHTML','Attachments','Title','<p>Empty\x20message</p>','gmail','imap.gmail.com','imap.mail.yahoo.com','hotmail','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','randomstring','path','util','node-tnef','../../../config/logger','email','../../../config/environment','head','value','address','name'];(function(_0x179b80,_0x440291){var _0x1e8d03=function(_0x466a71){while(--_0x466a71){_0x179b80['push'](_0x179b80['shift']());}};_0x1e8d03(++_0x440291);}(_0x5fdc,0x127));var _0xc5fd=function(_0x2a77ce,_0x4033a){_0x2a77ce=_0x2a77ce-0x0;var _0x2d2a4b=_0x5fdc[_0x2a77ce];return _0x2d2a4b;};'use strict';var _=require(_0xc5fd('0x0'));var moment=require(_0xc5fd('0x1'));var random=require(_0xc5fd('0x2'));var fs=require('fs');var path=require(_0xc5fd('0x3'));var util=require(_0xc5fd('0x4'));var tnef=require(_0xc5fd('0x5'));var logger=require(_0xc5fd('0x6'))(_0xc5fd('0x7'));var config=require(_0xc5fd('0x8'));function getAddress(_0x1b6205){var _0xca27a0=_[_0xc5fd('0x9')](_0x1b6205[_0xc5fd('0xa')]);return _0xca27a0&&_0xca27a0[_0xc5fd('0xb')]?_0xca27a0[_0xc5fd('0xb')]:'anonymous'+random['generate'](0x6)+'@xcally.com';}function getFirstName(_0x224801){var _0x46bce3=_[_0xc5fd('0x9')](_0x224801[_0xc5fd('0xa')]);if(_0x46bce3&&_0x46bce3['name']){if(_0x46bce3['name']==_0x46bce3[_0xc5fd('0xb')]){return _0x46bce3[_0xc5fd('0xc')][_0xc5fd('0xd')](0x0,_0x46bce3[_0xc5fd('0xc')][_0xc5fd('0xe')]('@'));}var _0x368c80=_0x46bce3['name'][_0xc5fd('0xf')](/\s+/);return _0x368c80['length']>0x1?_0x368c80['slice'](0x0,-0x1)[_0xc5fd('0x10')]('\x20'):_0x46bce3[_0xc5fd('0xc')];}return _0xc5fd('0x11');}function getLastName(_0x23ac5d){var _0x2e77a8=_[_0xc5fd('0x9')](_0x23ac5d[_0xc5fd('0xa')]);if(_0x2e77a8&&_0x2e77a8[_0xc5fd('0xc')]){var _0x51233a=_0x2e77a8[_0xc5fd('0xc')][_0xc5fd('0xf')](/\s+/);return _0x51233a[_0xc5fd('0x12')]>0x1?_0x51233a[_0xc5fd('0x13')]():'';}return'';}function getMails(_0x4d3636,_0x4fd364){var _0x4efafd='';for(var _0x5529b3=0x0;_0x5529b3<_0x4fd364['value'][_0xc5fd('0x12')];_0x5529b3+=0x1){if(_0x4fd364[_0xc5fd('0xa')][_0x5529b3][_0xc5fd('0xb')]!==_0x4d3636){if(!_[_0xc5fd('0x14')](_0x4efafd)){_0x4efafd+=',';}_0x4efafd+=_0x4fd364[_0xc5fd('0xa')][_0x5529b3][_0xc5fd('0xc')]||_0x4fd364[_0xc5fd('0xa')][_0x5529b3]['address']||'';_0x4efafd+='\x20<';_0x4efafd+=_0x4fd364[_0xc5fd('0xa')][_0x5529b3][_0xc5fd('0xb')]?_0x4fd364[_0xc5fd('0xa')][_0x5529b3][_0xc5fd('0xb')]:_0xc5fd('0x15')+random['generate'](0x6)+_0xc5fd('0x16');_0x4efafd+='>';}}return _0x4efafd;}function parseEmail(_0x24e5e9,_0x18048e,_0x216512){if(_0x18048e['html']){var _0x4c85d5=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x4c85d5[_0xc5fd('0x17')](_0x18048e[_0xc5fd('0x18')])){_0x18048e[_0xc5fd('0x18')]=_0x18048e[_0xc5fd('0x18')][_0xc5fd('0x19')](_0x4c85d5,'');}if(_0x18048e[_0xc5fd('0x18')]['includes'](_0xc5fd('0x1a'))){var _0x2701f7=[];_0x18048e[_0xc5fd('0x1b')][_0xc5fd('0x1c')](_0x39bb5e=>{_0x2701f7[_0xc5fd('0x1d')](_0x39bb5e[_0xc5fd('0x1e')]);});var _0x527018=/<img.*? _SRC(.*?)[^>]+>/g;var _0x3a86f9=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x48cd1d=_0x18048e[_0xc5fd('0x18')][_0xc5fd('0x19')](_0x3a86f9,_0xc5fd('0x1f'));var _0x2bee22=_0x48cd1d['replace'](_0x527018,_0xc5fd('0x20'));for(let _0x1bbdc4=0x0;_0x1bbdc4<_0x2701f7[_0xc5fd('0x12')];_0x1bbdc4++){var _0x42cbf0=_0x2bee22[_0xc5fd('0x19')](_0xc5fd('0x20'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x2701f7[_0x1bbdc4]+_0xc5fd('0x21'));_0x2bee22=_0x42cbf0;}_0x18048e['html']=_0x2bee22;}_0x216512['body']=_0x18048e[_0xc5fd('0x18')];}else{_0x216512[_0xc5fd('0x22')]=_0x18048e[_0xc5fd('0x23')];}if(_0x216512[_0xc5fd('0x22')]){_0x216512[_0xc5fd('0x22')]=_0x216512[_0xc5fd('0x22')][_0xc5fd('0x19')](/<a\s+/gi,_0xc5fd('0x24'));}if(_0x18048e['to']){_0x216512['message'][_0xc5fd('0x25')]=getMails(null,_0x18048e['to']);var _0x1b2957=getMails(_0x24e5e9[_0xc5fd('0x7')],_0x18048e['to']);if(!_[_0xc5fd('0x14')](_0x1b2957)){_0x216512[_0xc5fd('0x26')]['cc']+=_0x1b2957;}}if(_0x18048e['cc']){_0x216512[_0xc5fd('0x26')][_0xc5fd('0x27')]=getMails(null,_0x18048e['cc']);var _0xe458a=getMails(_0x24e5e9[_0xc5fd('0x7')],_0x18048e['cc']);if(!_[_0xc5fd('0x14')](_0xe458a)){if(!_[_0xc5fd('0x14')](_0x216512[_0xc5fd('0x26')]['cc'])){_0x216512['message']['cc']+=',';}_0x216512[_0xc5fd('0x26')]['cc']+=_0xe458a;}}if(!_[_0xc5fd('0x28')](_0x216512[_0xc5fd('0x26')][_0xc5fd('0x25')],_0x24e5e9[_0xc5fd('0x7')])&&!_[_0xc5fd('0x28')](_0x216512[_0xc5fd('0x26')][_0xc5fd('0x27')],_0x24e5e9[_0xc5fd('0x7')])){_0x216512['message'][_0xc5fd('0x29')]=_0x24e5e9[_0xc5fd('0x7')];}if(_0x18048e[_0xc5fd('0x1b')]&&_0x18048e[_0xc5fd('0x1b')][_0xc5fd('0x12')]){_0x216512[_0xc5fd('0x26')][_0xc5fd('0x2a')]=_0x18048e['attachments'][_0xc5fd('0x12')];for(var _0xac7c40=0x0,_0x57f3fc,_0x1f7a7b,_0x5cfccb;_0xac7c40<_0x18048e[_0xc5fd('0x1b')][_0xc5fd('0x12')];_0xac7c40+=0x1){if(_0x18048e[_0xc5fd('0x1b')][_0xac7c40]['type']===_0xc5fd('0x2b')){_0x5cfccb=_0x18048e[_0xc5fd('0x1b')][_0xac7c40]['filename']||_0xc5fd('0x2c')+_0xac7c40;_0x57f3fc=util[_0xc5fd('0x2d')](_0xc5fd('0x2e'),Date[_0xc5fd('0x2f')](),_0x5cfccb);_0x1f7a7b=path[_0xc5fd('0x10')](config[_0xc5fd('0x30')],'server/files/attachments/',_0x57f3fc);fs[_0xc5fd('0x31')](_0x1f7a7b,_0x18048e[_0xc5fd('0x1b')][_0xac7c40][_0xc5fd('0x32')]);_0x216512[_0xc5fd('0x26')]['attachments']['push']({'name':_0x5cfccb,'basename':_0x57f3fc,'type':_0x18048e['attachments'][_0xac7c40][_0xc5fd('0x33')],'filepath':_0x1f7a7b});}}}if(_0x18048e[_0xc5fd('0x34')]&&_0x18048e[_0xc5fd('0x34')][_0xc5fd('0x12')]>0x0){var _0x125c02=[_0xc5fd('0x35'),_0xc5fd('0x36'),_0xc5fd('0x37')];for(var _0x792ed6=0x0;_0x792ed6<_0x18048e['headerLines']['length'];_0x792ed6++){var _0x21f7b2=_['indexOf'](_0x125c02,_0x18048e[_0xc5fd('0x34')][_0x792ed6][_0xc5fd('0x38')]);if(_0x21f7b2>=0x0){_0x216512[_0xc5fd('0x39')]=!![];}}}return _0x216512;}exports['parser']=function(_0x6ebcbf,_0x350753,_0x588905){var _0x2cac7e={'from':getAddress(_0x350753[_0xc5fd('0x3a')]),'firstName':getFirstName(_0x350753['from']),'lastName':getLastName(_0x350753[_0xc5fd('0x3a')]),'mapKey':'email','message':{'from':getMails(_0x6ebcbf[_0xc5fd('0x7')],_0x350753[_0xc5fd('0x3a')]),'to':_0x6ebcbf['email'],'cc':'','subject':_0x350753[_0xc5fd('0x3b')]||'','messageId':_0x350753[_0xc5fd('0x3c')],'inReplyTo':_0x350753[_0xc5fd('0x3d')],'sentAt':moment(_0x350753['date'])[_0xc5fd('0x2d')](_0xc5fd('0x3e')),'attach':![],'attachments':[]}};if(!_0x350753['html']&&!_0x350753['textAsHtml']){var _0x3b7cf1=_['filter'](_0x350753['attachments'],{'contentType':'application/ms-tnef'});if(_0x3b7cf1[_0xc5fd('0x12')]){logger[_0xc5fd('0x3f')](util[_0xc5fd('0x2d')](_0xc5fd('0x40'),_0x350753[_0xc5fd('0x3c')]));tnef[_0xc5fd('0x41')](_['first'](_0x3b7cf1)['content'],function(_0x4ce654,_0x1d550c){if(_0x1d550c){_0x350753[_0xc5fd('0x18')]=_0x1d550c[_0xc5fd('0x42')]||'<p>Empty\x20message</p>';if(_0x1d550c[_0xc5fd('0x43')]){for(var _0x51641b=0x0;_0x51641b<_0x1d550c[_0xc5fd('0x43')][_0xc5fd('0x12')];_0x51641b++){var _0x39fba5=_0x1d550c[_0xc5fd('0x43')][_0x51641b];_0x2cac7e[_0xc5fd('0x26')][_0xc5fd('0x1b')]['push']({'filename':_0x39fba5[_0xc5fd('0x44')],'content':Buffer[_0xc5fd('0x3a')](_0x39fba5['Data'])});}}}_0x588905(parseEmail(_0x6ebcbf,_0x350753,_0x2cac7e));});}else{_0x350753['html']=_0xc5fd('0x45');_0x588905(parseEmail(_0x6ebcbf,_0x350753,_0x2cac7e));}}else{_0x588905(parseEmail(_0x6ebcbf,_0x350753,_0x2cac7e));}};exports['getHost']=function(_0x5723cb){switch(_0x5723cb){case _0xc5fd('0x46'):return _0xc5fd('0x47');case'yahoo':return _0xc5fd('0x48');case _0xc5fd('0x49'):return'imap-mail.outlook.com';case _0xc5fd('0x4a'):return _0xc5fd('0x4b');}return _0xc5fd('0x4c');};