ae68f21a003202199db89c88213f43c5b287b47e
[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 _0x7c5d=['originCc','includes','bcc','attach','attachment','format','%s-%s','now','root','server/files/attachments/','writeFileSync','content','contentType','parser','from','subject','messageId','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','first','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','randomstring','path','util','node-tnef','email','head','address','anonymous','generate','@xcally.com','value','name','split','length','slice','pop','isEmpty','html','test','replace','attachments','push','filename','_SRC','_IMG','\x20]</span>','body','textAsHtml','message','originTo'];(function(_0x4af42a,_0x3e657e){var _0x44f87c=function(_0x27f0d3){while(--_0x27f0d3){_0x4af42a['push'](_0x4af42a['shift']());}};_0x44f87c(++_0x3e657e);}(_0x7c5d,0x139));var _0xd7c5=function(_0x28c299,_0x202fad){_0x28c299=_0x28c299-0x0;var _0x2ea64d=_0x7c5d[_0x28c299];return _0x2ea64d;};'use strict';var _=require(_0xd7c5('0x0'));var moment=require(_0xd7c5('0x1'));var random=require(_0xd7c5('0x2'));var fs=require('fs');var path=require(_0xd7c5('0x3'));var util=require(_0xd7c5('0x4'));var tnef=require(_0xd7c5('0x5'));var logger=require('../../../config/logger')(_0xd7c5('0x6'));var config=require('../../../config/environment');function getAddress(_0x333db2){var _0x3ac2c2=_[_0xd7c5('0x7')](_0x333db2['value']);return _0x3ac2c2&&_0x3ac2c2[_0xd7c5('0x8')]?_0x3ac2c2['address']:_0xd7c5('0x9')+random[_0xd7c5('0xa')](0x6)+_0xd7c5('0xb');}function getFirstName(_0x24b319){var _0x50b125=_[_0xd7c5('0x7')](_0x24b319[_0xd7c5('0xc')]);if(_0x50b125&&_0x50b125[_0xd7c5('0xd')]){var _0x1fffd2=_0x50b125[_0xd7c5('0xd')][_0xd7c5('0xe')](/\s+/);return _0x1fffd2[_0xd7c5('0xf')]?_0x1fffd2[_0xd7c5('0x10')](0x0,-0x1)['join']('\x20'):_0x50b125[_0xd7c5('0xd')];}return'Anonymous';}function getLastName(_0x1c4527){var _0x51cda0=_[_0xd7c5('0x7')](_0x1c4527[_0xd7c5('0xc')]);if(_0x51cda0&&_0x51cda0[_0xd7c5('0xd')]){var _0x3b6025=_0x51cda0[_0xd7c5('0xd')]['split'](/\s+/);return _0x3b6025[_0xd7c5('0xf')]>0x1?_0x3b6025[_0xd7c5('0x11')]():'';}return'';}function getMails(_0x17b332,_0x5c27e3){var _0x3e1caf='';for(var _0x1f0464=0x0;_0x1f0464<_0x5c27e3[_0xd7c5('0xc')][_0xd7c5('0xf')];_0x1f0464+=0x1){if(_0x5c27e3[_0xd7c5('0xc')][_0x1f0464]['address']!==_0x17b332){if(!_[_0xd7c5('0x12')](_0x3e1caf)){_0x3e1caf+=',';}_0x3e1caf+=_0x5c27e3[_0xd7c5('0xc')][_0x1f0464][_0xd7c5('0xd')]||_0x5c27e3[_0xd7c5('0xc')][_0x1f0464][_0xd7c5('0x8')]||'';_0x3e1caf+='\x20<';_0x3e1caf+=_0x5c27e3[_0xd7c5('0xc')][_0x1f0464][_0xd7c5('0x8')]?_0x5c27e3['value'][_0x1f0464][_0xd7c5('0x8')]:_0xd7c5('0x9')+random[_0xd7c5('0xa')](0x6)+_0xd7c5('0xb');_0x3e1caf+='>';}}return _0x3e1caf;}function parseEmail(_0x34a8b8,_0x1325c3,_0x3a33cd){if(_0x1325c3[_0xd7c5('0x13')]){var _0x2a8b7d=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x2a8b7d[_0xd7c5('0x14')](_0x1325c3[_0xd7c5('0x13')])){_0x1325c3[_0xd7c5('0x13')]=_0x1325c3['html'][_0xd7c5('0x15')](_0x2a8b7d,'');}if(_0x1325c3['html']['includes']('<img')){var _0x558373=[];_0x1325c3[_0xd7c5('0x16')]['forEach'](_0x384357=>{_0x558373[_0xd7c5('0x17')](_0x384357[_0xd7c5('0x18')]);});var _0x1bc0f8=/<img.*? _SRC(.*?)[^\>]+>/g;var _0x34670d=/src=\"data:image\/([a-zA-Z]*);base64,([^\"]*)\"/g;var _0x2c805b=_0x1325c3[_0xd7c5('0x13')][_0xd7c5('0x15')](_0x34670d,_0xd7c5('0x19'));var _0x13a6ac=_0x2c805b['replace'](_0x1bc0f8,_0xd7c5('0x1a'));for(let _0x7ba830=0x0;_0x7ba830<_0x558373[_0xd7c5('0xf')];_0x7ba830++){var _0x3939ba=_0x13a6ac[_0xd7c5('0x15')](_0xd7c5('0x1a'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x558373[_0x7ba830]+_0xd7c5('0x1b'));_0x13a6ac=_0x3939ba;}_0x1325c3[_0xd7c5('0x13')]=_0x13a6ac;}_0x3a33cd[_0xd7c5('0x1c')]=_0x1325c3[_0xd7c5('0x13')];}else{_0x3a33cd[_0xd7c5('0x1c')]=_0x1325c3[_0xd7c5('0x1d')];}if(_0x3a33cd['body']){_0x3a33cd[_0xd7c5('0x1c')]=_0x3a33cd[_0xd7c5('0x1c')]['replace'](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x1325c3['to']){_0x3a33cd[_0xd7c5('0x1e')][_0xd7c5('0x1f')]=getMails(null,_0x1325c3['to']);var _0x2011d0=getMails(_0x34a8b8[_0xd7c5('0x6')],_0x1325c3['to']);if(!_['isEmpty'](_0x2011d0)){_0x3a33cd[_0xd7c5('0x1e')]['cc']+=_0x2011d0;}}if(_0x1325c3['cc']){_0x3a33cd[_0xd7c5('0x1e')][_0xd7c5('0x20')]=getMails(null,_0x1325c3['cc']);var _0x42ae1f=getMails(_0x34a8b8[_0xd7c5('0x6')],_0x1325c3['cc']);if(!_[_0xd7c5('0x12')](_0x42ae1f)){if(!_[_0xd7c5('0x12')](_0x3a33cd[_0xd7c5('0x1e')]['cc'])){_0x3a33cd['message']['cc']+=',';}_0x3a33cd['message']['cc']+=_0x42ae1f;}}if(!_[_0xd7c5('0x21')](_0x3a33cd[_0xd7c5('0x1e')][_0xd7c5('0x1f')],_0x34a8b8[_0xd7c5('0x6')])&&!_[_0xd7c5('0x21')](_0x3a33cd[_0xd7c5('0x1e')][_0xd7c5('0x20')],_0x34a8b8[_0xd7c5('0x6')])){_0x3a33cd[_0xd7c5('0x1e')][_0xd7c5('0x22')]=_0x34a8b8[_0xd7c5('0x6')];}if(_0x1325c3[_0xd7c5('0x16')]&&_0x1325c3[_0xd7c5('0x16')][_0xd7c5('0xf')]){_0x3a33cd[_0xd7c5('0x1e')][_0xd7c5('0x23')]=_0x1325c3['attachments'][_0xd7c5('0xf')];for(var _0x3a665a=0x0,_0x5243fc,_0x49a091,_0x2b7e80;_0x3a665a<_0x1325c3[_0xd7c5('0x16')]['length'];_0x3a665a+=0x1){if(_0x1325c3[_0xd7c5('0x16')][_0x3a665a]['type']===_0xd7c5('0x24')){_0x2b7e80=_0x1325c3[_0xd7c5('0x16')][_0x3a665a][_0xd7c5('0x18')]||'attachment-'+_0x3a665a;_0x5243fc=util[_0xd7c5('0x25')](_0xd7c5('0x26'),Date[_0xd7c5('0x27')](),_0x2b7e80);_0x49a091=path['join'](config[_0xd7c5('0x28')],_0xd7c5('0x29'),_0x5243fc);fs[_0xd7c5('0x2a')](_0x49a091,_0x1325c3[_0xd7c5('0x16')][_0x3a665a][_0xd7c5('0x2b')]);_0x3a33cd[_0xd7c5('0x1e')]['attachments'][_0xd7c5('0x17')]({'name':_0x2b7e80,'basename':_0x5243fc,'type':_0x1325c3['attachments'][_0x3a665a][_0xd7c5('0x2c')],'filepath':_0x49a091});}}}return _0x3a33cd;}exports[_0xd7c5('0x2d')]=function(_0x2fda85,_0x1f8cee,_0x51900c){var _0x22786c={'from':getAddress(_0x1f8cee['from']),'firstName':getFirstName(_0x1f8cee[_0xd7c5('0x2e')]),'lastName':getLastName(_0x1f8cee[_0xd7c5('0x2e')]),'mapKey':_0xd7c5('0x6'),'message':{'from':getMails(_0x2fda85[_0xd7c5('0x6')],_0x1f8cee[_0xd7c5('0x2e')]),'to':_0x2fda85[_0xd7c5('0x6')],'cc':'','subject':_0x1f8cee[_0xd7c5('0x2f')]||'','messageId':_0x1f8cee[_0xd7c5('0x30')],'inReplyTo':_0x1f8cee['inReplyTo'],'sentAt':moment(_0x1f8cee['date'])[_0xd7c5('0x25')](_0xd7c5('0x31')),'attach':![],'attachments':[]}};if(!_0x1f8cee[_0xd7c5('0x13')]&&!_0x1f8cee['textAsHtml']){var _0xa06f8b=_[_0xd7c5('0x32')](_0x1f8cee[_0xd7c5('0x16')],{'contentType':_0xd7c5('0x33')});if(_0xa06f8b[_0xd7c5('0xf')]){logger[_0xd7c5('0x34')](util[_0xd7c5('0x25')](_0xd7c5('0x35'),_0x1f8cee[_0xd7c5('0x30')]));tnef[_0xd7c5('0x36')](_[_0xd7c5('0x37')](_0xa06f8b)[_0xd7c5('0x2b')],function(_0x502020,_0x159af6){if(_0x159af6){_0x1f8cee[_0xd7c5('0x13')]=_0x159af6['BodyHTML']||_0xd7c5('0x38');if(_0x159af6['Attachments']){for(var _0x32e42=0x0;_0x32e42<_0x159af6[_0xd7c5('0x39')][_0xd7c5('0xf')];_0x32e42++){var _0x54e222=_0x159af6[_0xd7c5('0x39')][_0x32e42];_0x22786c[_0xd7c5('0x1e')][_0xd7c5('0x16')][_0xd7c5('0x17')]({'filename':_0x54e222[_0xd7c5('0x3a')],'content':new Buffer(_0x54e222[_0xd7c5('0x3b')])});}}}_0x51900c(parseEmail(_0x2fda85,_0x1f8cee,_0x22786c));});}else{_0x1f8cee[_0xd7c5('0x13')]=_0xd7c5('0x38');_0x51900c(parseEmail(_0x2fda85,_0x1f8cee,_0x22786c));}}else{_0x51900c(parseEmail(_0x2fda85,_0x1f8cee,_0x22786c));}};exports[_0xd7c5('0x3c')]=function(_0x3833c3){switch(_0x3833c3){case'gmail':return _0xd7c5('0x3d');case _0xd7c5('0x3e'):return _0xd7c5('0x3f');case _0xd7c5('0x40'):return _0xd7c5('0x41');case _0xd7c5('0x42'):return _0xd7c5('0x43');}return _0xd7c5('0x44');};