Built motion from commit ba71417a.|2.6.28
[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 _0xfd37=['writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','Precedence:\x20auto_reply','isAutoreply','from','subject','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Data','user=','auth=Bearer\x20','utf-8','base64','lodash','moment','path','util','node-tnef','../../../config/logger','email','../../../config/environment','anonymous','generate','head','address','name','substring','indexOf','split','length','slice','join','Anonymous','pop','value','isEmpty','@xcally.com','html','test','replace','forEach','push','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body','textAsHtml','message','originTo','originCc','includes','bcc','attachments','type','attachment','filename','attachment-','format','%s-%s','root','server/files/attachments/'];(function(_0x4c59ef,_0x5cc27d){var _0x3c5b7b=function(_0x4a47d7){while(--_0x4a47d7){_0x4c59ef['push'](_0x4c59ef['shift']());}};_0x3c5b7b(++_0x5cc27d);}(_0xfd37,0xec));var _0x7fd3=function(_0x372da4,_0x2ef523){_0x372da4=_0x372da4-0x0;var _0x40ae6f=_0xfd37[_0x372da4];return _0x40ae6f;};'use strict';var _=require(_0x7fd3('0x0'));var moment=require(_0x7fd3('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0x7fd3('0x2'));var util=require(_0x7fd3('0x3'));var tnef=require(_0x7fd3('0x4'));var logger=require(_0x7fd3('0x5'))(_0x7fd3('0x6'));var config=require(_0x7fd3('0x7'));function getAddress(_0xa25f91){var _0x40cdb5=_['head'](_0xa25f91['value']);return _0x40cdb5&&_0x40cdb5['address']?_0x40cdb5['address']:_0x7fd3('0x8')+random[_0x7fd3('0x9')](0x6)+'@xcally.com';}function getFirstName(_0x559676){var _0x53ea83=_[_0x7fd3('0xa')](_0x559676['value']);if(_0x53ea83&&_0x53ea83['name']){if(_0x53ea83['name']==_0x53ea83[_0x7fd3('0xb')]){return _0x53ea83[_0x7fd3('0xc')][_0x7fd3('0xd')](0x0,_0x53ea83[_0x7fd3('0xc')][_0x7fd3('0xe')]('@'));}var _0x3241c7=_0x53ea83['name'][_0x7fd3('0xf')](/\s+/);return _0x3241c7[_0x7fd3('0x10')]>0x1?_0x3241c7[_0x7fd3('0x11')](0x0,-0x1)[_0x7fd3('0x12')]('\x20'):_0x53ea83[_0x7fd3('0xc')];}return _0x7fd3('0x13');}function getLastName(_0x20c2ae){var _0xbf9aa7=_['head'](_0x20c2ae['value']);if(_0xbf9aa7&&_0xbf9aa7[_0x7fd3('0xc')]){var _0x464860=_0xbf9aa7['name']['split'](/\s+/);return _0x464860[_0x7fd3('0x10')]>0x1?_0x464860[_0x7fd3('0x14')]():'';}return'';}function getMails(_0x2695d6,_0x2c142e){var _0x526cf1='';for(var _0x2ffb82=0x0;_0x2ffb82<_0x2c142e[_0x7fd3('0x15')][_0x7fd3('0x10')];_0x2ffb82+=0x1){if(_0x2c142e['value'][_0x2ffb82][_0x7fd3('0xb')]!==_0x2695d6){if(!_[_0x7fd3('0x16')](_0x526cf1)){_0x526cf1+=',';}_0x526cf1+=_0x2c142e[_0x7fd3('0x15')][_0x2ffb82][_0x7fd3('0xc')]||_0x2c142e[_0x7fd3('0x15')][_0x2ffb82][_0x7fd3('0xb')]||'';_0x526cf1+='\x20<';_0x526cf1+=_0x2c142e[_0x7fd3('0x15')][_0x2ffb82][_0x7fd3('0xb')]?_0x2c142e['value'][_0x2ffb82][_0x7fd3('0xb')]:_0x7fd3('0x8')+random[_0x7fd3('0x9')](0x6)+_0x7fd3('0x17');_0x526cf1+='>';}}return _0x526cf1;}function parseEmail(_0x77bc76,_0x363acf,_0x390da4){if(_0x363acf[_0x7fd3('0x18')]){var _0x1ee3e4=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1ee3e4[_0x7fd3('0x19')](_0x363acf[_0x7fd3('0x18')])){_0x363acf['html']=_0x363acf[_0x7fd3('0x18')][_0x7fd3('0x1a')](_0x1ee3e4,'');}if(_0x363acf['html']['includes']('<img')){var _0x349760=[];_0x363acf['attachments'][_0x7fd3('0x1b')](_0x3907cd=>{_0x349760[_0x7fd3('0x1c')](_0x3907cd['filename']);});var _0xfc03b2=/<img.*? _SRC(.*?)[^>]+>/g;var _0x2c595e=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0xbcd404=_0x363acf[_0x7fd3('0x18')][_0x7fd3('0x1a')](_0x2c595e,_0x7fd3('0x1d'));var _0x52fdd2=_0xbcd404[_0x7fd3('0x1a')](_0xfc03b2,_0x7fd3('0x1e'));for(let _0x18c555=0x0;_0x18c555<_0x349760[_0x7fd3('0x10')];_0x18c555++){var _0x51a5c1=_0x52fdd2[_0x7fd3('0x1a')](_0x7fd3('0x1e'),_0x7fd3('0x1f')+_0x349760[_0x18c555]+'\x20]</span>');_0x52fdd2=_0x51a5c1;}_0x363acf[_0x7fd3('0x18')]=_0x52fdd2;}_0x390da4['body']=_0x363acf[_0x7fd3('0x18')];}else{_0x390da4[_0x7fd3('0x20')]=_0x363acf[_0x7fd3('0x21')];}if(_0x390da4['body']){_0x390da4[_0x7fd3('0x20')]=_0x390da4[_0x7fd3('0x20')]['replace'](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x363acf['to']){_0x390da4[_0x7fd3('0x22')][_0x7fd3('0x23')]=getMails(null,_0x363acf['to']);var _0x7b0e4f=getMails(_0x77bc76[_0x7fd3('0x6')],_0x363acf['to']);if(!_[_0x7fd3('0x16')](_0x7b0e4f)){_0x390da4['message']['cc']+=_0x7b0e4f;}}if(_0x363acf['cc']){_0x390da4[_0x7fd3('0x22')][_0x7fd3('0x24')]=getMails(null,_0x363acf['cc']);var _0xb786d7=getMails(_0x77bc76[_0x7fd3('0x6')],_0x363acf['cc']);if(!_['isEmpty'](_0xb786d7)){if(!_[_0x7fd3('0x16')](_0x390da4[_0x7fd3('0x22')]['cc'])){_0x390da4['message']['cc']+=',';}_0x390da4['message']['cc']+=_0xb786d7;}}if(!_[_0x7fd3('0x25')](_0x390da4[_0x7fd3('0x22')]['originTo'],_0x77bc76[_0x7fd3('0x6')])&&!_[_0x7fd3('0x25')](_0x390da4[_0x7fd3('0x22')][_0x7fd3('0x24')],_0x77bc76[_0x7fd3('0x6')])){_0x390da4[_0x7fd3('0x22')][_0x7fd3('0x26')]=_0x77bc76[_0x7fd3('0x6')];}if(_0x363acf[_0x7fd3('0x27')]&&_0x363acf['attachments']['length']){_0x390da4[_0x7fd3('0x22')]['attach']=_0x363acf[_0x7fd3('0x27')]['length'];for(var _0x2ddc3f=0x0,_0x5bd452,_0x20c762,_0x8ae709;_0x2ddc3f<_0x363acf[_0x7fd3('0x27')]['length'];_0x2ddc3f+=0x1){if(_0x363acf['attachments'][_0x2ddc3f][_0x7fd3('0x28')]===_0x7fd3('0x29')){_0x8ae709=_0x363acf[_0x7fd3('0x27')][_0x2ddc3f][_0x7fd3('0x2a')]||_0x7fd3('0x2b')+_0x2ddc3f;_0x5bd452=util[_0x7fd3('0x2c')](_0x7fd3('0x2d'),Date['now'](),_0x8ae709);_0x20c762=path[_0x7fd3('0x12')](config[_0x7fd3('0x2e')],_0x7fd3('0x2f'),_0x5bd452);fs[_0x7fd3('0x30')](_0x20c762,_0x363acf['attachments'][_0x2ddc3f][_0x7fd3('0x31')]);_0x390da4['message'][_0x7fd3('0x27')][_0x7fd3('0x1c')]({'name':_0x8ae709,'basename':_0x5bd452,'type':_0x363acf[_0x7fd3('0x27')][_0x2ddc3f][_0x7fd3('0x32')],'filepath':_0x20c762});}}}if(_0x363acf[_0x7fd3('0x33')]&&_0x363acf[_0x7fd3('0x33')][_0x7fd3('0x10')]>0x0){var _0x2b9653=[_0x7fd3('0x34'),'X-Auto-Response-Suppress:\x20All',_0x7fd3('0x35')];for(var _0x4af465=0x0;_0x4af465<_0x363acf[_0x7fd3('0x33')][_0x7fd3('0x10')];_0x4af465++){var _0x204aa5=_[_0x7fd3('0xe')](_0x2b9653,_0x363acf[_0x7fd3('0x33')][_0x4af465]['line']);if(_0x204aa5>=0x0){_0x390da4[_0x7fd3('0x36')]=!![];}}}return _0x390da4;}exports['parser']=function(_0x2e1dae,_0x17c6b6,_0x30c8e6){var _0x39aff1={'from':getAddress(_0x17c6b6['from']),'firstName':getFirstName(_0x17c6b6[_0x7fd3('0x37')]),'lastName':getLastName(_0x17c6b6[_0x7fd3('0x37')]),'mapKey':_0x7fd3('0x6'),'message':{'from':getMails(_0x2e1dae[_0x7fd3('0x6')],_0x17c6b6['from']),'to':_0x2e1dae[_0x7fd3('0x6')],'cc':'','subject':_0x17c6b6[_0x7fd3('0x38')]||'','messageId':_0x17c6b6['messageId'],'inReplyTo':_0x17c6b6['inReplyTo'],'sentAt':moment(_0x17c6b6['date'])['format'](_0x7fd3('0x39')),'attach':![],'attachments':[]}};if(!_0x17c6b6[_0x7fd3('0x18')]&&!_0x17c6b6['textAsHtml']){var _0x4fc387=_['filter'](_0x17c6b6[_0x7fd3('0x27')],{'contentType':_0x7fd3('0x3a')});if(_0x4fc387[_0x7fd3('0x10')]){logger[_0x7fd3('0x3b')](util[_0x7fd3('0x2c')](_0x7fd3('0x3c'),_0x17c6b6[_0x7fd3('0x3d')]));tnef['parseBuffer'](_[_0x7fd3('0x3e')](_0x4fc387)[_0x7fd3('0x31')],function(_0x20d2b5,_0x53c6da){if(_0x53c6da){_0x17c6b6[_0x7fd3('0x18')]=_0x53c6da[_0x7fd3('0x3f')]||_0x7fd3('0x40');if(_0x53c6da[_0x7fd3('0x41')]){for(var _0x29f9a5=0x0;_0x29f9a5<_0x53c6da[_0x7fd3('0x41')][_0x7fd3('0x10')];_0x29f9a5++){var _0x2549c9=_0x53c6da['Attachments'][_0x29f9a5];_0x39aff1['message'][_0x7fd3('0x27')][_0x7fd3('0x1c')]({'filename':_0x2549c9['Title'],'content':Buffer[_0x7fd3('0x37')](_0x2549c9[_0x7fd3('0x42')])});}}}_0x30c8e6(parseEmail(_0x2e1dae,_0x17c6b6,_0x39aff1));});}else{_0x17c6b6['html']=_0x7fd3('0x40');_0x30c8e6(parseEmail(_0x2e1dae,_0x17c6b6,_0x39aff1));}}else{_0x30c8e6(parseEmail(_0x2e1dae,_0x17c6b6,_0x39aff1));}};exports['generateXOAuth2Token']=function(_0x33bd6d,_0x12f6eb){var _0x13b916=[_0x7fd3('0x43')+(_0x12f6eb||''),_0x7fd3('0x44')+_0x33bd6d,'',''];return Buffer[_0x7fd3('0x37')](_0x13b916['join']('\ 1'),_0x7fd3('0x45'))['toString'](_0x7fd3('0x46'));};