Built motion from commit c738b9ac.|2.6.25
[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 _0x5922=['user=','base64','moment','randomstring','node-tnef','../../../config/logger','email','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name','substring','indexOf','split','length','slice','join','pop','isEmpty','test','html','replace','includes','<img','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','bcc','attachments','attach','type','attachment','attachment-','format','%s-%s','now','root','server/files/attachments/','writeFileSync','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','parser','from','subject','messageId','inReplyTo','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','BodyHTML','<p>Empty\x20message</p>','Attachments','Data','generateXOAuth2Token'];(function(_0xad39f6,_0x129028){var _0x2eb864=function(_0xfc11bb){while(--_0xfc11bb){_0xad39f6['push'](_0xad39f6['shift']());}};_0x2eb864(++_0x129028);}(_0x5922,0x132));var _0x2592=function(_0x2dea24,_0x2fc021){_0x2dea24=_0x2dea24-0x0;var _0x309d58=_0x5922[_0x2dea24];return _0x309d58;};'use strict';var _=require('lodash');var moment=require(_0x2592('0x0'));var random=require(_0x2592('0x1'));var fs=require('fs');var path=require('path');var util=require('util');var tnef=require(_0x2592('0x2'));var logger=require(_0x2592('0x3'))(_0x2592('0x4'));var config=require(_0x2592('0x5'));function getAddress(_0x3d8501){var _0x29eee8=_[_0x2592('0x6')](_0x3d8501[_0x2592('0x7')]);return _0x29eee8&&_0x29eee8[_0x2592('0x8')]?_0x29eee8[_0x2592('0x8')]:_0x2592('0x9')+random[_0x2592('0xa')](0x6)+_0x2592('0xb');}function getFirstName(_0x1b75bb){var _0x1f217d=_[_0x2592('0x6')](_0x1b75bb[_0x2592('0x7')]);if(_0x1f217d&&_0x1f217d[_0x2592('0xc')]){if(_0x1f217d['name']==_0x1f217d[_0x2592('0x8')]){return _0x1f217d[_0x2592('0xc')][_0x2592('0xd')](0x0,_0x1f217d[_0x2592('0xc')][_0x2592('0xe')]('@'));}var _0x51ec41=_0x1f217d[_0x2592('0xc')][_0x2592('0xf')](/\s+/);return _0x51ec41[_0x2592('0x10')]>0x1?_0x51ec41[_0x2592('0x11')](0x0,-0x1)[_0x2592('0x12')]('\x20'):_0x1f217d[_0x2592('0xc')];}return'Anonymous';}function getLastName(_0x38a446){var _0x224418=_['head'](_0x38a446[_0x2592('0x7')]);if(_0x224418&&_0x224418[_0x2592('0xc')]){var _0x2d33e2=_0x224418[_0x2592('0xc')]['split'](/\s+/);return _0x2d33e2['length']>0x1?_0x2d33e2[_0x2592('0x13')]():'';}return'';}function getMails(_0x3452bb,_0x297eb0){var _0x6ef5dc='';for(var _0x34f5c4=0x0;_0x34f5c4<_0x297eb0[_0x2592('0x7')][_0x2592('0x10')];_0x34f5c4+=0x1){if(_0x297eb0[_0x2592('0x7')][_0x34f5c4]['address']!==_0x3452bb){if(!_[_0x2592('0x14')](_0x6ef5dc)){_0x6ef5dc+=',';}_0x6ef5dc+=_0x297eb0[_0x2592('0x7')][_0x34f5c4][_0x2592('0xc')]||_0x297eb0['value'][_0x34f5c4]['address']||'';_0x6ef5dc+='\x20<';_0x6ef5dc+=_0x297eb0[_0x2592('0x7')][_0x34f5c4]['address']?_0x297eb0[_0x2592('0x7')][_0x34f5c4][_0x2592('0x8')]:'anonymous'+random[_0x2592('0xa')](0x6)+_0x2592('0xb');_0x6ef5dc+='>';}}return _0x6ef5dc;}function parseEmail(_0x1a97ca,_0x2f93fd,_0x337996){if(_0x2f93fd['html']){var _0x37dbbd=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x37dbbd[_0x2592('0x15')](_0x2f93fd[_0x2592('0x16')])){_0x2f93fd[_0x2592('0x16')]=_0x2f93fd[_0x2592('0x16')][_0x2592('0x17')](_0x37dbbd,'');}if(_0x2f93fd[_0x2592('0x16')][_0x2592('0x18')](_0x2592('0x19'))){var _0x5e52c5=[];_0x2f93fd['attachments'][_0x2592('0x1a')](_0x2b4413=>{_0x5e52c5[_0x2592('0x1b')](_0x2b4413[_0x2592('0x1c')]);});var _0x3864fa=/<img.*? _SRC(.*?)[^>]+>/g;var _0x292f0b=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x21c880=_0x2f93fd['html'][_0x2592('0x17')](_0x292f0b,_0x2592('0x1d'));var _0x120bab=_0x21c880['replace'](_0x3864fa,'_IMG');for(let _0xc3dbce=0x0;_0xc3dbce<_0x5e52c5[_0x2592('0x10')];_0xc3dbce++){var _0xe55950=_0x120bab['replace'](_0x2592('0x1e'),_0x2592('0x1f')+_0x5e52c5[_0xc3dbce]+_0x2592('0x20'));_0x120bab=_0xe55950;}_0x2f93fd[_0x2592('0x16')]=_0x120bab;}_0x337996[_0x2592('0x21')]=_0x2f93fd[_0x2592('0x16')];}else{_0x337996['body']=_0x2f93fd[_0x2592('0x22')];}if(_0x337996[_0x2592('0x21')]){_0x337996[_0x2592('0x21')]=_0x337996[_0x2592('0x21')][_0x2592('0x17')](/<a\s+/gi,_0x2592('0x23'));}if(_0x2f93fd['to']){_0x337996[_0x2592('0x24')][_0x2592('0x25')]=getMails(null,_0x2f93fd['to']);var _0x91959=getMails(_0x1a97ca[_0x2592('0x4')],_0x2f93fd['to']);if(!_['isEmpty'](_0x91959)){_0x337996[_0x2592('0x24')]['cc']+=_0x91959;}}if(_0x2f93fd['cc']){_0x337996[_0x2592('0x24')][_0x2592('0x26')]=getMails(null,_0x2f93fd['cc']);var _0x2871ba=getMails(_0x1a97ca[_0x2592('0x4')],_0x2f93fd['cc']);if(!_['isEmpty'](_0x2871ba)){if(!_[_0x2592('0x14')](_0x337996['message']['cc'])){_0x337996[_0x2592('0x24')]['cc']+=',';}_0x337996[_0x2592('0x24')]['cc']+=_0x2871ba;}}if(!_['includes'](_0x337996['message'][_0x2592('0x25')],_0x1a97ca[_0x2592('0x4')])&&!_['includes'](_0x337996[_0x2592('0x24')]['originCc'],_0x1a97ca[_0x2592('0x4')])){_0x337996[_0x2592('0x24')][_0x2592('0x27')]=_0x1a97ca['email'];}if(_0x2f93fd[_0x2592('0x28')]&&_0x2f93fd['attachments']['length']){_0x337996[_0x2592('0x24')][_0x2592('0x29')]=_0x2f93fd[_0x2592('0x28')][_0x2592('0x10')];for(var _0x105442=0x0,_0x2cfc38,_0xfb0bb,_0x459486;_0x105442<_0x2f93fd[_0x2592('0x28')]['length'];_0x105442+=0x1){if(_0x2f93fd[_0x2592('0x28')][_0x105442][_0x2592('0x2a')]===_0x2592('0x2b')){_0x459486=_0x2f93fd['attachments'][_0x105442]['filename']||_0x2592('0x2c')+_0x105442;_0x2cfc38=util[_0x2592('0x2d')](_0x2592('0x2e'),Date[_0x2592('0x2f')](),_0x459486);_0xfb0bb=path[_0x2592('0x12')](config[_0x2592('0x30')],_0x2592('0x31'),_0x2cfc38);fs[_0x2592('0x32')](_0xfb0bb,_0x2f93fd[_0x2592('0x28')][_0x105442]['content']);_0x337996[_0x2592('0x24')][_0x2592('0x28')][_0x2592('0x1b')]({'name':_0x459486,'basename':_0x2cfc38,'type':_0x2f93fd[_0x2592('0x28')][_0x105442]['contentType'],'filepath':_0xfb0bb});}}}if(_0x2f93fd['headerLines']&&_0x2f93fd[_0x2592('0x33')][_0x2592('0x10')]>0x0){var _0x47efa7=[_0x2592('0x34'),_0x2592('0x35'),_0x2592('0x36')];for(var _0x2a05ae=0x0;_0x2a05ae<_0x2f93fd['headerLines'][_0x2592('0x10')];_0x2a05ae++){var _0x3a41bd=_[_0x2592('0xe')](_0x47efa7,_0x2f93fd[_0x2592('0x33')][_0x2a05ae][_0x2592('0x37')]);if(_0x3a41bd>=0x0){_0x337996[_0x2592('0x38')]=!![];}}}return _0x337996;}exports[_0x2592('0x39')]=function(_0x469401,_0x273cee,_0x53daee){var _0x55a4fc={'from':getAddress(_0x273cee[_0x2592('0x3a')]),'firstName':getFirstName(_0x273cee[_0x2592('0x3a')]),'lastName':getLastName(_0x273cee[_0x2592('0x3a')]),'mapKey':'email','message':{'from':getMails(_0x469401['email'],_0x273cee[_0x2592('0x3a')]),'to':_0x469401[_0x2592('0x4')],'cc':'','subject':_0x273cee[_0x2592('0x3b')]||'','messageId':_0x273cee[_0x2592('0x3c')],'inReplyTo':_0x273cee[_0x2592('0x3d')],'sentAt':moment(_0x273cee['date'])[_0x2592('0x2d')](_0x2592('0x3e')),'attach':![],'attachments':[]}};if(!_0x273cee[_0x2592('0x16')]&&!_0x273cee[_0x2592('0x22')]){var _0x3a1740=_[_0x2592('0x3f')](_0x273cee[_0x2592('0x28')],{'contentType':_0x2592('0x40')});if(_0x3a1740[_0x2592('0x10')]){logger[_0x2592('0x41')](util[_0x2592('0x2d')](_0x2592('0x42'),_0x273cee[_0x2592('0x3c')]));tnef[_0x2592('0x43')](_[_0x2592('0x44')](_0x3a1740)['content'],function(_0xba89b0,_0x2b110e){if(_0x2b110e){_0x273cee[_0x2592('0x16')]=_0x2b110e[_0x2592('0x45')]||_0x2592('0x46');if(_0x2b110e['Attachments']){for(var _0x151b1c=0x0;_0x151b1c<_0x2b110e[_0x2592('0x47')][_0x2592('0x10')];_0x151b1c++){var _0xcf4333=_0x2b110e[_0x2592('0x47')][_0x151b1c];_0x55a4fc[_0x2592('0x24')]['attachments']['push']({'filename':_0xcf4333['Title'],'content':Buffer[_0x2592('0x3a')](_0xcf4333[_0x2592('0x48')])});}}}_0x53daee(parseEmail(_0x469401,_0x273cee,_0x55a4fc));});}else{_0x273cee[_0x2592('0x16')]='<p>Empty\x20message</p>';_0x53daee(parseEmail(_0x469401,_0x273cee,_0x55a4fc));}}else{_0x53daee(parseEmail(_0x469401,_0x273cee,_0x55a4fc));}};exports[_0x2592('0x49')]=function(_0x3c76db,_0x1ef00b){var _0x2a6272=[_0x2592('0x4a')+(_0x1ef00b||''),'auth=Bearer\x20'+_0x3c76db,'',''];return Buffer['from'](_0x2a6272[_0x2592('0x12')]('\ 1'),'utf-8')['toString'](_0x2592('0x4b'));};