Built motion from commit bab6f49e.|2.6.17
[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 _0x226f=['@xcally.com','name','substring','indexOf','split','length','join','Anonymous','isEmpty','test','html','replace','includes','attachments','forEach','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','textAsHtml','body','<a\x20target=\x22_blank\x22\x20','message','originTo','email','originCc','bcc','type','attachment-','format','%s-%s','now','root','server/files/attachments/','writeFileSync','push','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','line','isAutoreply','parser','from','messageId','inReplyTo','date','filter','application/ms-tnef','parseBuffer','content','<p>Empty\x20message</p>','Attachments','Data','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','base64','lodash','moment','randomstring','path','util','../../../config/environment','head','value','address','anonymous','generate'];(function(_0x25710b,_0x5aaaba){var _0x79052e=function(_0x2fe555){while(--_0x2fe555){_0x25710b['push'](_0x25710b['shift']());}};_0x79052e(++_0x5aaaba);}(_0x226f,0x19f));var _0xf226=function(_0x3d356a,_0x2bddd6){_0x3d356a=_0x3d356a-0x0;var _0x2968c3=_0x226f[_0x3d356a];return _0x2968c3;};'use strict';var _=require(_0xf226('0x0'));var moment=require(_0xf226('0x1'));var random=require(_0xf226('0x2'));var fs=require('fs');var path=require(_0xf226('0x3'));var util=require(_0xf226('0x4'));var tnef=require('node-tnef');var logger=require('../../../config/logger')('email');var config=require(_0xf226('0x5'));function getAddress(_0x3b1109){var _0x50a8fd=_[_0xf226('0x6')](_0x3b1109[_0xf226('0x7')]);return _0x50a8fd&&_0x50a8fd[_0xf226('0x8')]?_0x50a8fd[_0xf226('0x8')]:_0xf226('0x9')+random[_0xf226('0xa')](0x6)+_0xf226('0xb');}function getFirstName(_0x26fe1f){var _0x239f06=_[_0xf226('0x6')](_0x26fe1f[_0xf226('0x7')]);if(_0x239f06&&_0x239f06[_0xf226('0xc')]){if(_0x239f06['name']==_0x239f06[_0xf226('0x8')]){return _0x239f06[_0xf226('0xc')][_0xf226('0xd')](0x0,_0x239f06['name'][_0xf226('0xe')]('@'));}var _0x1be4dd=_0x239f06[_0xf226('0xc')][_0xf226('0xf')](/\s+/);return _0x1be4dd[_0xf226('0x10')]>0x1?_0x1be4dd['slice'](0x0,-0x1)[_0xf226('0x11')]('\x20'):_0x239f06[_0xf226('0xc')];}return _0xf226('0x12');}function getLastName(_0x2009df){var _0x12aeca=_[_0xf226('0x6')](_0x2009df[_0xf226('0x7')]);if(_0x12aeca&&_0x12aeca[_0xf226('0xc')]){var _0x42eda7=_0x12aeca[_0xf226('0xc')][_0xf226('0xf')](/\s+/);return _0x42eda7[_0xf226('0x10')]>0x1?_0x42eda7['pop']():'';}return'';}function getMails(_0x2b5ee8,_0x37fb1c){var _0x4054a3='';for(var _0x50dd12=0x0;_0x50dd12<_0x37fb1c[_0xf226('0x7')][_0xf226('0x10')];_0x50dd12+=0x1){if(_0x37fb1c[_0xf226('0x7')][_0x50dd12][_0xf226('0x8')]!==_0x2b5ee8){if(!_[_0xf226('0x13')](_0x4054a3)){_0x4054a3+=',';}_0x4054a3+=_0x37fb1c[_0xf226('0x7')][_0x50dd12]['name']||_0x37fb1c[_0xf226('0x7')][_0x50dd12][_0xf226('0x8')]||'';_0x4054a3+='\x20<';_0x4054a3+=_0x37fb1c[_0xf226('0x7')][_0x50dd12][_0xf226('0x8')]?_0x37fb1c['value'][_0x50dd12][_0xf226('0x8')]:_0xf226('0x9')+random[_0xf226('0xa')](0x6)+_0xf226('0xb');_0x4054a3+='>';}}return _0x4054a3;}function parseEmail(_0x5859e1,_0x3e0e34,_0xdf8bf8){if(_0x3e0e34['html']){var _0x187611=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x187611[_0xf226('0x14')](_0x3e0e34[_0xf226('0x15')])){_0x3e0e34[_0xf226('0x15')]=_0x3e0e34[_0xf226('0x15')][_0xf226('0x16')](_0x187611,'');}if(_0x3e0e34[_0xf226('0x15')][_0xf226('0x17')]('<img')){var _0x1cb2fb=[];_0x3e0e34[_0xf226('0x18')][_0xf226('0x19')](_0x2888a6=>{_0x1cb2fb['push'](_0x2888a6[_0xf226('0x1a')]);});var _0x5c703d=/<img.*? _SRC(.*?)[^>]+>/g;var _0xbd8c4b=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x250168=_0x3e0e34[_0xf226('0x15')][_0xf226('0x16')](_0xbd8c4b,_0xf226('0x1b'));var _0x473a3d=_0x250168[_0xf226('0x16')](_0x5c703d,_0xf226('0x1c'));for(let _0x27979c=0x0;_0x27979c<_0x1cb2fb['length'];_0x27979c++){var _0x5d5298=_0x473a3d[_0xf226('0x16')](_0xf226('0x1c'),_0xf226('0x1d')+_0x1cb2fb[_0x27979c]+_0xf226('0x1e'));_0x473a3d=_0x5d5298;}_0x3e0e34[_0xf226('0x15')]=_0x473a3d;}_0xdf8bf8['body']=_0x3e0e34[_0xf226('0x15')];}else{_0xdf8bf8['body']=_0x3e0e34[_0xf226('0x1f')];}if(_0xdf8bf8[_0xf226('0x20')]){_0xdf8bf8[_0xf226('0x20')]=_0xdf8bf8[_0xf226('0x20')]['replace'](/<a\s+/gi,_0xf226('0x21'));}if(_0x3e0e34['to']){_0xdf8bf8[_0xf226('0x22')][_0xf226('0x23')]=getMails(null,_0x3e0e34['to']);var _0x1c5d2f=getMails(_0x5859e1[_0xf226('0x24')],_0x3e0e34['to']);if(!_['isEmpty'](_0x1c5d2f)){_0xdf8bf8[_0xf226('0x22')]['cc']+=_0x1c5d2f;}}if(_0x3e0e34['cc']){_0xdf8bf8[_0xf226('0x22')][_0xf226('0x25')]=getMails(null,_0x3e0e34['cc']);var _0x34ed07=getMails(_0x5859e1[_0xf226('0x24')],_0x3e0e34['cc']);if(!_[_0xf226('0x13')](_0x34ed07)){if(!_['isEmpty'](_0xdf8bf8['message']['cc'])){_0xdf8bf8[_0xf226('0x22')]['cc']+=',';}_0xdf8bf8[_0xf226('0x22')]['cc']+=_0x34ed07;}}if(!_['includes'](_0xdf8bf8[_0xf226('0x22')]['originTo'],_0x5859e1[_0xf226('0x24')])&&!_[_0xf226('0x17')](_0xdf8bf8['message'][_0xf226('0x25')],_0x5859e1[_0xf226('0x24')])){_0xdf8bf8[_0xf226('0x22')][_0xf226('0x26')]=_0x5859e1[_0xf226('0x24')];}if(_0x3e0e34[_0xf226('0x18')]&&_0x3e0e34[_0xf226('0x18')]['length']){_0xdf8bf8[_0xf226('0x22')]['attach']=_0x3e0e34[_0xf226('0x18')][_0xf226('0x10')];for(var _0x3fb26a=0x0,_0x3a105f,_0x49a1d8,_0x20ed90;_0x3fb26a<_0x3e0e34[_0xf226('0x18')][_0xf226('0x10')];_0x3fb26a+=0x1){if(_0x3e0e34['attachments'][_0x3fb26a][_0xf226('0x27')]==='attachment'){_0x20ed90=_0x3e0e34[_0xf226('0x18')][_0x3fb26a]['filename']||_0xf226('0x28')+_0x3fb26a;_0x3a105f=util[_0xf226('0x29')](_0xf226('0x2a'),Date[_0xf226('0x2b')](),_0x20ed90);_0x49a1d8=path[_0xf226('0x11')](config[_0xf226('0x2c')],_0xf226('0x2d'),_0x3a105f);fs[_0xf226('0x2e')](_0x49a1d8,_0x3e0e34['attachments'][_0x3fb26a]['content']);_0xdf8bf8[_0xf226('0x22')][_0xf226('0x18')][_0xf226('0x2f')]({'name':_0x20ed90,'basename':_0x3a105f,'type':_0x3e0e34['attachments'][_0x3fb26a][_0xf226('0x30')],'filepath':_0x49a1d8});}}}if(_0x3e0e34[_0xf226('0x31')]&&_0x3e0e34[_0xf226('0x31')]['length']>0x0){var _0x58b8e0=[_0xf226('0x32'),_0xf226('0x33'),'Precedence:\x20auto_reply'];for(var _0x58bdc9=0x0;_0x58bdc9<_0x3e0e34[_0xf226('0x31')][_0xf226('0x10')];_0x58bdc9++){var _0x381191=_[_0xf226('0xe')](_0x58b8e0,_0x3e0e34[_0xf226('0x31')][_0x58bdc9][_0xf226('0x34')]);if(_0x381191>=0x0){_0xdf8bf8[_0xf226('0x35')]=!![];}}}return _0xdf8bf8;}exports[_0xf226('0x36')]=function(_0x463466,_0x3da004,_0x5975dd){var _0x30a8b8={'from':getAddress(_0x3da004['from']),'firstName':getFirstName(_0x3da004[_0xf226('0x37')]),'lastName':getLastName(_0x3da004[_0xf226('0x37')]),'mapKey':_0xf226('0x24'),'message':{'from':getMails(_0x463466[_0xf226('0x24')],_0x3da004[_0xf226('0x37')]),'to':_0x463466[_0xf226('0x24')],'cc':'','subject':_0x3da004['subject']||'','messageId':_0x3da004[_0xf226('0x38')],'inReplyTo':_0x3da004[_0xf226('0x39')],'sentAt':moment(_0x3da004[_0xf226('0x3a')])[_0xf226('0x29')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x3da004[_0xf226('0x15')]&&!_0x3da004['textAsHtml']){var _0x4feba8=_[_0xf226('0x3b')](_0x3da004[_0xf226('0x18')],{'contentType':_0xf226('0x3c')});if(_0x4feba8[_0xf226('0x10')]){logger['info'](util[_0xf226('0x29')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x3da004[_0xf226('0x38')]));tnef[_0xf226('0x3d')](_['first'](_0x4feba8)[_0xf226('0x3e')],function(_0x28b7a8,_0x104c23){if(_0x104c23){_0x3da004[_0xf226('0x15')]=_0x104c23['BodyHTML']||_0xf226('0x3f');if(_0x104c23[_0xf226('0x40')]){for(var _0x587516=0x0;_0x587516<_0x104c23[_0xf226('0x40')][_0xf226('0x10')];_0x587516++){var _0x4b19c4=_0x104c23[_0xf226('0x40')][_0x587516];_0x30a8b8[_0xf226('0x22')][_0xf226('0x18')]['push']({'filename':_0x4b19c4['Title'],'content':Buffer[_0xf226('0x37')](_0x4b19c4[_0xf226('0x41')])});}}}_0x5975dd(parseEmail(_0x463466,_0x3da004,_0x30a8b8));});}else{_0x3da004[_0xf226('0x15')]=_0xf226('0x3f');_0x5975dd(parseEmail(_0x463466,_0x3da004,_0x30a8b8));}}else{_0x5975dd(parseEmail(_0x463466,_0x3da004,_0x30a8b8));}};exports[_0xf226('0x42')]=function(_0x228840,_0x4e65d8){var _0x3802ca=[_0xf226('0x43')+(_0x4e65d8||''),_0xf226('0x44')+_0x228840,'',''];return Buffer[_0xf226('0x37')](_0x3802ca[_0xf226('0x11')]('\ 1'),_0xf226('0x45'))['toString'](_0xf226('0x46'));};