730de299761fa230a10c9403a841fece50c9c2f9
[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 _0xfe28=['<img','attachments','push','replace','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','bcc','filename','attachment-','now','join','server/files/attachments/','writeFileSync','content','contentType','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','headerLines','line','from','subject','messageId','inReplyTo','YYYY-MM-DD\x20HH:mm:ss','textAsHtml','info','format','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','moment','randomstring','util','node-tnef','../../../config/logger','email','../../../config/environment','value','address','anonymous','@xcally.com','head','name','substring','indexOf','split','length','Anonymous','pop','isEmpty','html','test','includes'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xfe28,0xfc));var _0x8fe2=function(_0x3c0a03,_0xbcecb1){_0x3c0a03=_0x3c0a03-0x0;var _0x5c4469=_0xfe28[_0x3c0a03];return _0x5c4469;};'use strict';var _=require(_0x8fe2('0x0'));var moment=require(_0x8fe2('0x1'));var random=require(_0x8fe2('0x2'));var fs=require('fs');var path=require('path');var util=require(_0x8fe2('0x3'));var tnef=require(_0x8fe2('0x4'));var logger=require(_0x8fe2('0x5'))(_0x8fe2('0x6'));var config=require(_0x8fe2('0x7'));function getAddress(_0x173fca){var _0x5de7fd=_['head'](_0x173fca[_0x8fe2('0x8')]);return _0x5de7fd&&_0x5de7fd[_0x8fe2('0x9')]?_0x5de7fd[_0x8fe2('0x9')]:_0x8fe2('0xa')+random['generate'](0x6)+_0x8fe2('0xb');}function getFirstName(_0x3945fa){var _0x411741=_[_0x8fe2('0xc')](_0x3945fa[_0x8fe2('0x8')]);if(_0x411741&&_0x411741[_0x8fe2('0xd')]){if(_0x411741['name']==_0x411741[_0x8fe2('0x9')]){return _0x411741[_0x8fe2('0xd')][_0x8fe2('0xe')](0x0,_0x411741['name'][_0x8fe2('0xf')]('@'));}var _0x5bbca1=_0x411741[_0x8fe2('0xd')][_0x8fe2('0x10')](/\s+/);return _0x5bbca1[_0x8fe2('0x11')]>0x1?_0x5bbca1['slice'](0x0,-0x1)['join']('\x20'):_0x411741[_0x8fe2('0xd')];}return _0x8fe2('0x12');}function getLastName(_0x4a5958){var _0x1255db=_[_0x8fe2('0xc')](_0x4a5958[_0x8fe2('0x8')]);if(_0x1255db&&_0x1255db[_0x8fe2('0xd')]){var _0x45b4f7=_0x1255db[_0x8fe2('0xd')][_0x8fe2('0x10')](/\s+/);return _0x45b4f7['length']>0x1?_0x45b4f7[_0x8fe2('0x13')]():'';}return'';}function getMails(_0x788988,_0x4edb4d){var _0x2edc7a='';for(var _0x49cb9c=0x0;_0x49cb9c<_0x4edb4d[_0x8fe2('0x8')][_0x8fe2('0x11')];_0x49cb9c+=0x1){if(_0x4edb4d['value'][_0x49cb9c][_0x8fe2('0x9')]!==_0x788988){if(!_[_0x8fe2('0x14')](_0x2edc7a)){_0x2edc7a+=',';}_0x2edc7a+=_0x4edb4d[_0x8fe2('0x8')][_0x49cb9c]['name']||_0x4edb4d['value'][_0x49cb9c]['address']||'';_0x2edc7a+='\x20<';_0x2edc7a+=_0x4edb4d['value'][_0x49cb9c]['address']?_0x4edb4d[_0x8fe2('0x8')][_0x49cb9c][_0x8fe2('0x9')]:_0x8fe2('0xa')+random['generate'](0x6)+'@xcally.com';_0x2edc7a+='>';}}return _0x2edc7a;}function parseEmail(_0x12ef40,_0x798d98,_0x32224c){if(_0x798d98[_0x8fe2('0x15')]){var _0x2beb27=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x2beb27[_0x8fe2('0x16')](_0x798d98[_0x8fe2('0x15')])){_0x798d98[_0x8fe2('0x15')]=_0x798d98[_0x8fe2('0x15')]['replace'](_0x2beb27,'');}if(_0x798d98[_0x8fe2('0x15')][_0x8fe2('0x17')](_0x8fe2('0x18'))){var _0x2cee24=[];_0x798d98[_0x8fe2('0x19')]['forEach'](_0x28435c=>{_0x2cee24[_0x8fe2('0x1a')](_0x28435c['filename']);});var _0xbe593e=/<img.*? _SRC(.*?)[^>]+>/g;var _0x5dbb46=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x421599=_0x798d98[_0x8fe2('0x15')][_0x8fe2('0x1b')](_0x5dbb46,'_SRC');var _0x65e43b=_0x421599[_0x8fe2('0x1b')](_0xbe593e,_0x8fe2('0x1c'));for(let _0x263fc4=0x0;_0x263fc4<_0x2cee24[_0x8fe2('0x11')];_0x263fc4++){var _0x1fbe93=_0x65e43b[_0x8fe2('0x1b')]('_IMG',_0x8fe2('0x1d')+_0x2cee24[_0x263fc4]+'\x20]</span>');_0x65e43b=_0x1fbe93;}_0x798d98[_0x8fe2('0x15')]=_0x65e43b;}_0x32224c[_0x8fe2('0x1e')]=_0x798d98[_0x8fe2('0x15')];}else{_0x32224c[_0x8fe2('0x1e')]=_0x798d98['textAsHtml'];}if(_0x32224c[_0x8fe2('0x1e')]){_0x32224c[_0x8fe2('0x1e')]=_0x32224c[_0x8fe2('0x1e')]['replace'](/<a\s+/gi,_0x8fe2('0x1f'));}if(_0x798d98['to']){_0x32224c[_0x8fe2('0x20')][_0x8fe2('0x21')]=getMails(null,_0x798d98['to']);var _0x48319e=getMails(_0x12ef40[_0x8fe2('0x6')],_0x798d98['to']);if(!_[_0x8fe2('0x14')](_0x48319e)){_0x32224c[_0x8fe2('0x20')]['cc']+=_0x48319e;}}if(_0x798d98['cc']){_0x32224c['message']['originCc']=getMails(null,_0x798d98['cc']);var _0x5df66d=getMails(_0x12ef40[_0x8fe2('0x6')],_0x798d98['cc']);if(!_[_0x8fe2('0x14')](_0x5df66d)){if(!_[_0x8fe2('0x14')](_0x32224c['message']['cc'])){_0x32224c[_0x8fe2('0x20')]['cc']+=',';}_0x32224c['message']['cc']+=_0x5df66d;}}if(!_['includes'](_0x32224c[_0x8fe2('0x20')][_0x8fe2('0x21')],_0x12ef40[_0x8fe2('0x6')])&&!_[_0x8fe2('0x17')](_0x32224c['message'][_0x8fe2('0x22')],_0x12ef40[_0x8fe2('0x6')])){_0x32224c[_0x8fe2('0x20')][_0x8fe2('0x23')]=_0x12ef40['email'];}if(_0x798d98[_0x8fe2('0x19')]&&_0x798d98['attachments'][_0x8fe2('0x11')]){_0x32224c['message']['attach']=_0x798d98[_0x8fe2('0x19')][_0x8fe2('0x11')];for(var _0x31098a=0x0,_0x14d507,_0x1ea2d3,_0x47d932;_0x31098a<_0x798d98[_0x8fe2('0x19')][_0x8fe2('0x11')];_0x31098a+=0x1){if(_0x798d98[_0x8fe2('0x19')][_0x31098a]['type']==='attachment'){_0x47d932=_0x798d98['attachments'][_0x31098a][_0x8fe2('0x24')]||_0x8fe2('0x25')+_0x31098a;_0x14d507=util['format']('%s-%s',Date[_0x8fe2('0x26')](),_0x47d932);_0x1ea2d3=path[_0x8fe2('0x27')](config['root'],_0x8fe2('0x28'),_0x14d507);fs[_0x8fe2('0x29')](_0x1ea2d3,_0x798d98[_0x8fe2('0x19')][_0x31098a][_0x8fe2('0x2a')]);_0x32224c[_0x8fe2('0x20')][_0x8fe2('0x19')][_0x8fe2('0x1a')]({'name':_0x47d932,'basename':_0x14d507,'type':_0x798d98['attachments'][_0x31098a][_0x8fe2('0x2b')],'filepath':_0x1ea2d3});}}}if(_0x798d98['headerLines']&&_0x798d98['headerLines'][_0x8fe2('0x11')]>0x0){var _0x5173f9=[_0x8fe2('0x2c'),_0x8fe2('0x2d'),_0x8fe2('0x2e')];for(var _0x32b1d2=0x0;_0x32b1d2<_0x798d98[_0x8fe2('0x2f')][_0x8fe2('0x11')];_0x32b1d2++){var _0x5df24f=_['indexOf'](_0x5173f9,_0x798d98[_0x8fe2('0x2f')][_0x32b1d2][_0x8fe2('0x30')]);if(_0x5df24f>=0x0){_0x32224c['isAutoreply']=!![];}}}return _0x32224c;}exports['parser']=function(_0x2c8414,_0x5d64e6,_0x4e27e5){var _0x17bbbe={'from':getAddress(_0x5d64e6[_0x8fe2('0x31')]),'firstName':getFirstName(_0x5d64e6['from']),'lastName':getLastName(_0x5d64e6[_0x8fe2('0x31')]),'mapKey':_0x8fe2('0x6'),'message':{'from':getMails(_0x2c8414['email'],_0x5d64e6['from']),'to':_0x2c8414[_0x8fe2('0x6')],'cc':'','subject':_0x5d64e6[_0x8fe2('0x32')]||'','messageId':_0x5d64e6[_0x8fe2('0x33')],'inReplyTo':_0x5d64e6[_0x8fe2('0x34')],'sentAt':moment(_0x5d64e6['date'])['format'](_0x8fe2('0x35')),'attach':![],'attachments':[]}};if(!_0x5d64e6[_0x8fe2('0x15')]&&!_0x5d64e6[_0x8fe2('0x36')]){var _0x5289dc=_['filter'](_0x5d64e6[_0x8fe2('0x19')],{'contentType':'application/ms-tnef'});if(_0x5289dc[_0x8fe2('0x11')]){logger[_0x8fe2('0x37')](util[_0x8fe2('0x38')](_0x8fe2('0x39'),_0x5d64e6[_0x8fe2('0x33')]));tnef[_0x8fe2('0x3a')](_['first'](_0x5289dc)[_0x8fe2('0x2a')],function(_0x236168,_0x5212c1){if(_0x5212c1){_0x5d64e6[_0x8fe2('0x15')]=_0x5212c1['BodyHTML']||_0x8fe2('0x3b');if(_0x5212c1[_0x8fe2('0x3c')]){for(var _0x184664=0x0;_0x184664<_0x5212c1[_0x8fe2('0x3c')][_0x8fe2('0x11')];_0x184664++){var _0x4a3de0=_0x5212c1[_0x8fe2('0x3c')][_0x184664];_0x17bbbe[_0x8fe2('0x20')][_0x8fe2('0x19')]['push']({'filename':_0x4a3de0[_0x8fe2('0x3d')],'content':Buffer['from'](_0x4a3de0[_0x8fe2('0x3e')])});}}}_0x4e27e5(parseEmail(_0x2c8414,_0x5d64e6,_0x17bbbe));});}else{_0x5d64e6[_0x8fe2('0x15')]=_0x8fe2('0x3b');_0x4e27e5(parseEmail(_0x2c8414,_0x5d64e6,_0x17bbbe));}}else{_0x4e27e5(parseEmail(_0x2c8414,_0x5d64e6,_0x17bbbe));}};exports[_0x8fe2('0x3f')]=function(_0x40763f,_0x2a5ae7){var _0x41dba2=[_0x8fe2('0x40')+(_0x2a5ae7||''),_0x8fe2('0x41')+_0x40763f,'',''];return Buffer[_0x8fe2('0x31')](_0x41dba2[_0x8fe2('0x27')]('\ 1'),_0x8fe2('0x42'))[_0x8fe2('0x43')](_0x8fe2('0x44'));};