7aaba5685032f2be054d6256277addba03ca7572
[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 _0x5bbf=['attachment-','format','%s-%s','now','root','writeFileSync','push','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','parser','from','subject','messageId','inReplyTo','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','content','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','generateXOAuth2Token','utf-8','base64','lodash','path','util','node-tnef','../../../config/logger','email','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name','split','length','slice','join','pop','isEmpty','html','test','replace','<img','attachments','forEach','filename','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','message','originCc','includes','type','attachment'];(function(_0x362c1f,_0x4fccd9){var _0x32bd2a=function(_0xfe09e5){while(--_0xfe09e5){_0x362c1f['push'](_0x362c1f['shift']());}};_0x32bd2a(++_0x4fccd9);}(_0x5bbf,0xa7));var _0xf5bb=function(_0x1ec7aa,_0x2506df){_0x1ec7aa=_0x1ec7aa-0x0;var _0x4bafb7=_0x5bbf[_0x1ec7aa];return _0x4bafb7;};'use strict';var _=require(_0xf5bb('0x0'));var moment=require('moment');var random=require('randomstring');var fs=require('fs');var path=require(_0xf5bb('0x1'));var util=require(_0xf5bb('0x2'));var tnef=require(_0xf5bb('0x3'));var logger=require(_0xf5bb('0x4'))(_0xf5bb('0x5'));var config=require(_0xf5bb('0x6'));function getAddress(_0x5c5302){var _0x45a88e=_[_0xf5bb('0x7')](_0x5c5302[_0xf5bb('0x8')]);return _0x45a88e&&_0x45a88e['address']?_0x45a88e[_0xf5bb('0x9')]:_0xf5bb('0xa')+random[_0xf5bb('0xb')](0x6)+_0xf5bb('0xc');}function getFirstName(_0x4b2675){var _0x5a5db8=_[_0xf5bb('0x7')](_0x4b2675['value']);if(_0x5a5db8&&_0x5a5db8[_0xf5bb('0xd')]){if(_0x5a5db8[_0xf5bb('0xd')]==_0x5a5db8[_0xf5bb('0x9')]){return _0x5a5db8[_0xf5bb('0xd')]['substring'](0x0,_0x5a5db8[_0xf5bb('0xd')]['indexOf']('@'));}var _0x28d1ba=_0x5a5db8[_0xf5bb('0xd')][_0xf5bb('0xe')](/\s+/);return _0x28d1ba[_0xf5bb('0xf')]>0x1?_0x28d1ba[_0xf5bb('0x10')](0x0,-0x1)[_0xf5bb('0x11')]('\x20'):_0x5a5db8[_0xf5bb('0xd')];}return'Anonymous';}function getLastName(_0x3cbbf5){var _0xbd4900=_[_0xf5bb('0x7')](_0x3cbbf5[_0xf5bb('0x8')]);if(_0xbd4900&&_0xbd4900[_0xf5bb('0xd')]){var _0x1e8c15=_0xbd4900['name'][_0xf5bb('0xe')](/\s+/);return _0x1e8c15[_0xf5bb('0xf')]>0x1?_0x1e8c15[_0xf5bb('0x12')]():'';}return'';}function getMails(_0x6632d6,_0x303bb8){var _0x36162b='';for(var _0x29fe1c=0x0;_0x29fe1c<_0x303bb8['value']['length'];_0x29fe1c+=0x1){if(_0x303bb8[_0xf5bb('0x8')][_0x29fe1c][_0xf5bb('0x9')]!==_0x6632d6){if(!_[_0xf5bb('0x13')](_0x36162b)){_0x36162b+=',';}_0x36162b+=_0x303bb8['value'][_0x29fe1c][_0xf5bb('0xd')]||_0x303bb8[_0xf5bb('0x8')][_0x29fe1c][_0xf5bb('0x9')]||'';_0x36162b+='\x20<';_0x36162b+=_0x303bb8['value'][_0x29fe1c][_0xf5bb('0x9')]?_0x303bb8[_0xf5bb('0x8')][_0x29fe1c][_0xf5bb('0x9')]:'anonymous'+random[_0xf5bb('0xb')](0x6)+_0xf5bb('0xc');_0x36162b+='>';}}return _0x36162b;}function parseEmail(_0x3a09fb,_0x88237d,_0x3f260c){if(_0x88237d[_0xf5bb('0x14')]){var _0x24fff9=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x24fff9[_0xf5bb('0x15')](_0x88237d[_0xf5bb('0x14')])){_0x88237d['html']=_0x88237d['html'][_0xf5bb('0x16')](_0x24fff9,'');}if(_0x88237d[_0xf5bb('0x14')]['includes'](_0xf5bb('0x17'))){var _0x3bbc94=[];_0x88237d[_0xf5bb('0x18')][_0xf5bb('0x19')](_0x5567f1=>{_0x3bbc94['push'](_0x5567f1[_0xf5bb('0x1a')]);});var _0x34af04=/<img.*? _SRC(.*?)[^>]+>/g;var _0x1b852d=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x4acadd=_0x88237d[_0xf5bb('0x14')][_0xf5bb('0x16')](_0x1b852d,'_SRC');var _0x1131b4=_0x4acadd[_0xf5bb('0x16')](_0x34af04,_0xf5bb('0x1b'));for(let _0x37ecd5=0x0;_0x37ecd5<_0x3bbc94[_0xf5bb('0xf')];_0x37ecd5++){var _0x42dc6a=_0x1131b4[_0xf5bb('0x16')]('_IMG',_0xf5bb('0x1c')+_0x3bbc94[_0x37ecd5]+_0xf5bb('0x1d'));_0x1131b4=_0x42dc6a;}_0x88237d[_0xf5bb('0x14')]=_0x1131b4;}_0x3f260c[_0xf5bb('0x1e')]=_0x88237d['html'];}else{_0x3f260c['body']=_0x88237d[_0xf5bb('0x1f')];}if(_0x3f260c[_0xf5bb('0x1e')]){_0x3f260c[_0xf5bb('0x1e')]=_0x3f260c[_0xf5bb('0x1e')][_0xf5bb('0x16')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x88237d['to']){_0x3f260c[_0xf5bb('0x20')]['originTo']=getMails(null,_0x88237d['to']);var _0x38dbff=getMails(_0x3a09fb['email'],_0x88237d['to']);if(!_['isEmpty'](_0x38dbff)){_0x3f260c['message']['cc']+=_0x38dbff;}}if(_0x88237d['cc']){_0x3f260c[_0xf5bb('0x20')][_0xf5bb('0x21')]=getMails(null,_0x88237d['cc']);var _0x4ee18d=getMails(_0x3a09fb['email'],_0x88237d['cc']);if(!_[_0xf5bb('0x13')](_0x4ee18d)){if(!_[_0xf5bb('0x13')](_0x3f260c[_0xf5bb('0x20')]['cc'])){_0x3f260c[_0xf5bb('0x20')]['cc']+=',';}_0x3f260c[_0xf5bb('0x20')]['cc']+=_0x4ee18d;}}if(!_[_0xf5bb('0x22')](_0x3f260c['message']['originTo'],_0x3a09fb[_0xf5bb('0x5')])&&!_[_0xf5bb('0x22')](_0x3f260c[_0xf5bb('0x20')][_0xf5bb('0x21')],_0x3a09fb[_0xf5bb('0x5')])){_0x3f260c['message']['bcc']=_0x3a09fb[_0xf5bb('0x5')];}if(_0x88237d[_0xf5bb('0x18')]&&_0x88237d[_0xf5bb('0x18')][_0xf5bb('0xf')]){_0x3f260c[_0xf5bb('0x20')]['attach']=_0x88237d[_0xf5bb('0x18')][_0xf5bb('0xf')];for(var _0x4616f9=0x0,_0x14bb2a,_0x48a446,_0x34ec78;_0x4616f9<_0x88237d['attachments'][_0xf5bb('0xf')];_0x4616f9+=0x1){if(_0x88237d['attachments'][_0x4616f9][_0xf5bb('0x23')]===_0xf5bb('0x24')){_0x34ec78=_0x88237d['attachments'][_0x4616f9]['filename']||_0xf5bb('0x25')+_0x4616f9;_0x14bb2a=util[_0xf5bb('0x26')](_0xf5bb('0x27'),Date[_0xf5bb('0x28')](),_0x34ec78);_0x48a446=path[_0xf5bb('0x11')](config[_0xf5bb('0x29')],'server/files/attachments/',_0x14bb2a);fs[_0xf5bb('0x2a')](_0x48a446,_0x88237d[_0xf5bb('0x18')][_0x4616f9]['content']);_0x3f260c['message'][_0xf5bb('0x18')][_0xf5bb('0x2b')]({'name':_0x34ec78,'basename':_0x14bb2a,'type':_0x88237d['attachments'][_0x4616f9][_0xf5bb('0x2c')],'filepath':_0x48a446});}}}if(_0x88237d[_0xf5bb('0x2d')]&&_0x88237d[_0xf5bb('0x2d')]['length']>0x0){var _0x2c5f23=[_0xf5bb('0x2e'),_0xf5bb('0x2f'),_0xf5bb('0x30')];for(var _0xec4ea3=0x0;_0xec4ea3<_0x88237d['headerLines'][_0xf5bb('0xf')];_0xec4ea3++){var _0x3c2c24=_['indexOf'](_0x2c5f23,_0x88237d[_0xf5bb('0x2d')][_0xec4ea3][_0xf5bb('0x31')]);if(_0x3c2c24>=0x0){_0x3f260c['isAutoreply']=!![];}}}return _0x3f260c;}exports[_0xf5bb('0x32')]=function(_0x5a7a67,_0x42f9c9,_0x140262){var _0x484cc={'from':getAddress(_0x42f9c9['from']),'firstName':getFirstName(_0x42f9c9['from']),'lastName':getLastName(_0x42f9c9['from']),'mapKey':_0xf5bb('0x5'),'message':{'from':getMails(_0x5a7a67['email'],_0x42f9c9[_0xf5bb('0x33')]),'to':_0x5a7a67[_0xf5bb('0x5')],'cc':'','subject':_0x42f9c9[_0xf5bb('0x34')]||'','messageId':_0x42f9c9[_0xf5bb('0x35')],'inReplyTo':_0x42f9c9[_0xf5bb('0x36')],'sentAt':moment(_0x42f9c9['date'])[_0xf5bb('0x26')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x42f9c9[_0xf5bb('0x14')]&&!_0x42f9c9[_0xf5bb('0x1f')]){var _0x3cae01=_[_0xf5bb('0x37')](_0x42f9c9[_0xf5bb('0x18')],{'contentType':_0xf5bb('0x38')});if(_0x3cae01[_0xf5bb('0xf')]){logger[_0xf5bb('0x39')](util['format'](_0xf5bb('0x3a'),_0x42f9c9[_0xf5bb('0x35')]));tnef[_0xf5bb('0x3b')](_['first'](_0x3cae01)[_0xf5bb('0x3c')],function(_0xa4531c,_0xb6e342){if(_0xb6e342){_0x42f9c9['html']=_0xb6e342[_0xf5bb('0x3d')]||_0xf5bb('0x3e');if(_0xb6e342[_0xf5bb('0x3f')]){for(var _0x300ee0=0x0;_0x300ee0<_0xb6e342[_0xf5bb('0x3f')][_0xf5bb('0xf')];_0x300ee0++){var _0x19353a=_0xb6e342[_0xf5bb('0x3f')][_0x300ee0];_0x484cc['message']['attachments'][_0xf5bb('0x2b')]({'filename':_0x19353a[_0xf5bb('0x40')],'content':Buffer['from'](_0x19353a['Data'])});}}}_0x140262(parseEmail(_0x5a7a67,_0x42f9c9,_0x484cc));});}else{_0x42f9c9[_0xf5bb('0x14')]=_0xf5bb('0x3e');_0x140262(parseEmail(_0x5a7a67,_0x42f9c9,_0x484cc));}}else{_0x140262(parseEmail(_0x5a7a67,_0x42f9c9,_0x484cc));}};exports[_0xf5bb('0x41')]=function(_0x3066c1,_0x23e2dd){var _0x29499f=['user='+(_0x23e2dd||''),'auth=Bearer\x20'+_0x3066c1,'',''];return Buffer['from'](_0x29499f[_0xf5bb('0x11')]('\ 1'),_0xf5bb('0x42'))['toString'](_0xf5bb('0x43'));};