f1aa24cfd4ed156550669af492aea681bc7c3699
[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 _0x7ab9=['body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','bcc','attach','type','attachment','attachment-','format','%s-%s','now','root','server/files/attachments/','content','contentType','headerLines','Precedence:\x20auto_reply','line','isAutoreply','parser','from','subject','date','filter','application/ms-tnef','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','toString','lodash','path','node-tnef','../../../config/logger','email','head','value','address','anonymous','generate','@xcally.com','name','substring','indexOf','split','length','slice','join','pop','isEmpty','html','test','includes','<img','attachments','forEach','push','filename','replace','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7ab9,0xfb));var _0x97ab=function(_0x191154,_0x56f74c){_0x191154=_0x191154-0x0;var _0x3dcd73=_0x7ab9[_0x191154];return _0x3dcd73;};'use strict';var _=require(_0x97ab('0x0'));var moment=require('moment');var random=require('randomstring');var fs=require('fs');var path=require(_0x97ab('0x1'));var util=require('util');var tnef=require(_0x97ab('0x2'));var logger=require(_0x97ab('0x3'))(_0x97ab('0x4'));var config=require('../../../config/environment');function getAddress(_0xde0a10){var _0x89edfb=_[_0x97ab('0x5')](_0xde0a10[_0x97ab('0x6')]);return _0x89edfb&&_0x89edfb[_0x97ab('0x7')]?_0x89edfb['address']:_0x97ab('0x8')+random[_0x97ab('0x9')](0x6)+_0x97ab('0xa');}function getFirstName(_0x38e084){var _0x54da4d=_[_0x97ab('0x5')](_0x38e084[_0x97ab('0x6')]);if(_0x54da4d&&_0x54da4d[_0x97ab('0xb')]){if(_0x54da4d[_0x97ab('0xb')]==_0x54da4d[_0x97ab('0x7')]){return _0x54da4d[_0x97ab('0xb')][_0x97ab('0xc')](0x0,_0x54da4d['name'][_0x97ab('0xd')]('@'));}var _0x3c1f7d=_0x54da4d[_0x97ab('0xb')][_0x97ab('0xe')](/\s+/);return _0x3c1f7d[_0x97ab('0xf')]>0x1?_0x3c1f7d[_0x97ab('0x10')](0x0,-0x1)[_0x97ab('0x11')]('\x20'):_0x54da4d['name'];}return'Anonymous';}function getLastName(_0x3973da){var _0x58a994=_[_0x97ab('0x5')](_0x3973da[_0x97ab('0x6')]);if(_0x58a994&&_0x58a994['name']){var _0x14d689=_0x58a994[_0x97ab('0xb')][_0x97ab('0xe')](/\s+/);return _0x14d689['length']>0x1?_0x14d689[_0x97ab('0x12')]():'';}return'';}function getMails(_0x5b5052,_0x41e008){var _0x243598='';for(var _0x3d27ba=0x0;_0x3d27ba<_0x41e008[_0x97ab('0x6')]['length'];_0x3d27ba+=0x1){if(_0x41e008['value'][_0x3d27ba][_0x97ab('0x7')]!==_0x5b5052){if(!_[_0x97ab('0x13')](_0x243598)){_0x243598+=',';}_0x243598+=_0x41e008[_0x97ab('0x6')][_0x3d27ba][_0x97ab('0xb')]||_0x41e008[_0x97ab('0x6')][_0x3d27ba][_0x97ab('0x7')]||'';_0x243598+='\x20<';_0x243598+=_0x41e008[_0x97ab('0x6')][_0x3d27ba][_0x97ab('0x7')]?_0x41e008[_0x97ab('0x6')][_0x3d27ba]['address']:_0x97ab('0x8')+random['generate'](0x6)+_0x97ab('0xa');_0x243598+='>';}}return _0x243598;}function parseEmail(_0x400a16,_0x2ba5,_0x461048){if(_0x2ba5[_0x97ab('0x14')]){var _0x51bc77=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x51bc77[_0x97ab('0x15')](_0x2ba5[_0x97ab('0x14')])){_0x2ba5['html']=_0x2ba5[_0x97ab('0x14')]['replace'](_0x51bc77,'');}if(_0x2ba5[_0x97ab('0x14')][_0x97ab('0x16')](_0x97ab('0x17'))){var _0x244315=[];_0x2ba5[_0x97ab('0x18')][_0x97ab('0x19')](_0x437381=>{_0x244315[_0x97ab('0x1a')](_0x437381[_0x97ab('0x1b')]);});var _0x722c86=/<img.*? _SRC(.*?)[^>]+>/g;var _0x3b7a07=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x51c1c7=_0x2ba5[_0x97ab('0x14')][_0x97ab('0x1c')](_0x3b7a07,_0x97ab('0x1d'));var _0x5ec2b0=_0x51c1c7[_0x97ab('0x1c')](_0x722c86,_0x97ab('0x1e'));for(let _0x5d5b1b=0x0;_0x5d5b1b<_0x244315['length'];_0x5d5b1b++){var _0x434f8e=_0x5ec2b0['replace'](_0x97ab('0x1e'),_0x97ab('0x1f')+_0x244315[_0x5d5b1b]+_0x97ab('0x20'));_0x5ec2b0=_0x434f8e;}_0x2ba5[_0x97ab('0x14')]=_0x5ec2b0;}_0x461048[_0x97ab('0x21')]=_0x2ba5['html'];}else{_0x461048[_0x97ab('0x21')]=_0x2ba5[_0x97ab('0x22')];}if(_0x461048[_0x97ab('0x21')]){_0x461048['body']=_0x461048['body'][_0x97ab('0x1c')](/<a\s+/gi,_0x97ab('0x23'));}if(_0x2ba5['to']){_0x461048[_0x97ab('0x24')]['originTo']=getMails(null,_0x2ba5['to']);var _0x2cb774=getMails(_0x400a16[_0x97ab('0x4')],_0x2ba5['to']);if(!_[_0x97ab('0x13')](_0x2cb774)){_0x461048[_0x97ab('0x24')]['cc']+=_0x2cb774;}}if(_0x2ba5['cc']){_0x461048[_0x97ab('0x24')]['originCc']=getMails(null,_0x2ba5['cc']);var _0x30347d=getMails(_0x400a16[_0x97ab('0x4')],_0x2ba5['cc']);if(!_['isEmpty'](_0x30347d)){if(!_['isEmpty'](_0x461048[_0x97ab('0x24')]['cc'])){_0x461048[_0x97ab('0x24')]['cc']+=',';}_0x461048[_0x97ab('0x24')]['cc']+=_0x30347d;}}if(!_[_0x97ab('0x16')](_0x461048[_0x97ab('0x24')][_0x97ab('0x25')],_0x400a16['email'])&&!_['includes'](_0x461048[_0x97ab('0x24')][_0x97ab('0x26')],_0x400a16[_0x97ab('0x4')])){_0x461048[_0x97ab('0x24')][_0x97ab('0x27')]=_0x400a16[_0x97ab('0x4')];}if(_0x2ba5['attachments']&&_0x2ba5[_0x97ab('0x18')][_0x97ab('0xf')]){_0x461048[_0x97ab('0x24')][_0x97ab('0x28')]=_0x2ba5[_0x97ab('0x18')]['length'];for(var _0x4ec685=0x0,_0xed59b1,_0x5f4218,_0x165056;_0x4ec685<_0x2ba5[_0x97ab('0x18')][_0x97ab('0xf')];_0x4ec685+=0x1){if(_0x2ba5[_0x97ab('0x18')][_0x4ec685][_0x97ab('0x29')]===_0x97ab('0x2a')){_0x165056=_0x2ba5[_0x97ab('0x18')][_0x4ec685]['filename']||_0x97ab('0x2b')+_0x4ec685;_0xed59b1=util[_0x97ab('0x2c')](_0x97ab('0x2d'),Date[_0x97ab('0x2e')](),_0x165056);_0x5f4218=path[_0x97ab('0x11')](config[_0x97ab('0x2f')],_0x97ab('0x30'),_0xed59b1);fs['writeFileSync'](_0x5f4218,_0x2ba5['attachments'][_0x4ec685][_0x97ab('0x31')]);_0x461048['message'][_0x97ab('0x18')][_0x97ab('0x1a')]({'name':_0x165056,'basename':_0xed59b1,'type':_0x2ba5[_0x97ab('0x18')][_0x4ec685][_0x97ab('0x32')],'filepath':_0x5f4218});}}}if(_0x2ba5[_0x97ab('0x33')]&&_0x2ba5[_0x97ab('0x33')]['length']>0x0){var _0x271d4f=['Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All',_0x97ab('0x34')];for(var _0x52ee01=0x0;_0x52ee01<_0x2ba5[_0x97ab('0x33')][_0x97ab('0xf')];_0x52ee01++){var _0x43888d=_['indexOf'](_0x271d4f,_0x2ba5[_0x97ab('0x33')][_0x52ee01][_0x97ab('0x35')]);if(_0x43888d>=0x0){_0x461048[_0x97ab('0x36')]=!![];}}}return _0x461048;}exports[_0x97ab('0x37')]=function(_0x5904ed,_0x35d5a5,_0x4287c2){var _0xd187fd={'from':getAddress(_0x35d5a5[_0x97ab('0x38')]),'firstName':getFirstName(_0x35d5a5['from']),'lastName':getLastName(_0x35d5a5[_0x97ab('0x38')]),'mapKey':'email','message':{'from':getMails(_0x5904ed[_0x97ab('0x4')],_0x35d5a5[_0x97ab('0x38')]),'to':_0x5904ed[_0x97ab('0x4')],'cc':'','subject':_0x35d5a5[_0x97ab('0x39')]||'','messageId':_0x35d5a5['messageId'],'inReplyTo':_0x35d5a5['inReplyTo'],'sentAt':moment(_0x35d5a5[_0x97ab('0x3a')])[_0x97ab('0x2c')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x35d5a5[_0x97ab('0x14')]&&!_0x35d5a5[_0x97ab('0x22')]){var _0x2712a8=_[_0x97ab('0x3b')](_0x35d5a5[_0x97ab('0x18')],{'contentType':_0x97ab('0x3c')});if(_0x2712a8['length']){logger['info'](util[_0x97ab('0x2c')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x35d5a5['messageId']));tnef[_0x97ab('0x3d')](_[_0x97ab('0x3e')](_0x2712a8)[_0x97ab('0x31')],function(_0x92810b,_0x55b4cf){if(_0x55b4cf){_0x35d5a5[_0x97ab('0x14')]=_0x55b4cf[_0x97ab('0x3f')]||_0x97ab('0x40');if(_0x55b4cf[_0x97ab('0x41')]){for(var _0xd33758=0x0;_0xd33758<_0x55b4cf['Attachments'][_0x97ab('0xf')];_0xd33758++){var _0x340247=_0x55b4cf['Attachments'][_0xd33758];_0xd187fd[_0x97ab('0x24')]['attachments'][_0x97ab('0x1a')]({'filename':_0x340247[_0x97ab('0x42')],'content':Buffer[_0x97ab('0x38')](_0x340247[_0x97ab('0x43')])});}}}_0x4287c2(parseEmail(_0x5904ed,_0x35d5a5,_0xd187fd));});}else{_0x35d5a5['html']='<p>Empty\x20message</p>';_0x4287c2(parseEmail(_0x5904ed,_0x35d5a5,_0xd187fd));}}else{_0x4287c2(parseEmail(_0x5904ed,_0x35d5a5,_0xd187fd));}};exports[_0x97ab('0x44')]=function(_0x5bfc0f,_0x641dc0){var _0x17e2d8=[_0x97ab('0x45')+(_0x641dc0||''),'auth=Bearer\x20'+_0x5bfc0f,'',''];return Buffer['from'](_0x17e2d8['join']('\ 1'),'utf-8')[_0x97ab('0x46')]('base64');};