Built motion from commit 85328c08.|2.5.50
[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 _0x6b79=['textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','bcc','attach','type','attachment','attachment-','format','%s-%s','now','root','server/files/attachments/','writeFileSync','content','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','indexOf','isAutoreply','parser','from','subject','messageId','inReplyTo','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','parseBuffer','first','BodyHTML','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','toString','base64','moment','randomstring','util','node-tnef','email','../../../config/environment','value','address','anonymous','generate','head','name','substring','split','length','slice','join','Anonymous','pop','isEmpty','html','test','replace','includes','<img','attachments','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body'];(function(_0x341489,_0x233937){var _0x1fc9bb=function(_0x84c18d){while(--_0x84c18d){_0x341489['push'](_0x341489['shift']());}};_0x1fc9bb(++_0x233937);}(_0x6b79,0x156));var _0x96b7=function(_0x40b413,_0x2676b1){_0x40b413=_0x40b413-0x0;var _0x5a5d78=_0x6b79[_0x40b413];return _0x5a5d78;};'use strict';var _=require('lodash');var moment=require(_0x96b7('0x0'));var random=require(_0x96b7('0x1'));var fs=require('fs');var path=require('path');var util=require(_0x96b7('0x2'));var tnef=require(_0x96b7('0x3'));var logger=require('../../../config/logger')(_0x96b7('0x4'));var config=require(_0x96b7('0x5'));function getAddress(_0x2afe3c){var _0x8c263d=_['head'](_0x2afe3c[_0x96b7('0x6')]);return _0x8c263d&&_0x8c263d[_0x96b7('0x7')]?_0x8c263d[_0x96b7('0x7')]:_0x96b7('0x8')+random[_0x96b7('0x9')](0x6)+'@xcally.com';}function getFirstName(_0x3209ec){var _0x453393=_[_0x96b7('0xa')](_0x3209ec['value']);if(_0x453393&&_0x453393['name']){if(_0x453393[_0x96b7('0xb')]==_0x453393[_0x96b7('0x7')]){return _0x453393['name'][_0x96b7('0xc')](0x0,_0x453393['name']['indexOf']('@'));}var _0x19d5c1=_0x453393[_0x96b7('0xb')][_0x96b7('0xd')](/\s+/);return _0x19d5c1[_0x96b7('0xe')]>0x1?_0x19d5c1[_0x96b7('0xf')](0x0,-0x1)[_0x96b7('0x10')]('\x20'):_0x453393[_0x96b7('0xb')];}return _0x96b7('0x11');}function getLastName(_0x5bbdc5){var _0xca5ec8=_['head'](_0x5bbdc5[_0x96b7('0x6')]);if(_0xca5ec8&&_0xca5ec8[_0x96b7('0xb')]){var _0x70bd3a=_0xca5ec8[_0x96b7('0xb')]['split'](/\s+/);return _0x70bd3a[_0x96b7('0xe')]>0x1?_0x70bd3a[_0x96b7('0x12')]():'';}return'';}function getMails(_0x1196bf,_0x441c4b){var _0x130395='';for(var _0x34a43f=0x0;_0x34a43f<_0x441c4b[_0x96b7('0x6')][_0x96b7('0xe')];_0x34a43f+=0x1){if(_0x441c4b[_0x96b7('0x6')][_0x34a43f][_0x96b7('0x7')]!==_0x1196bf){if(!_[_0x96b7('0x13')](_0x130395)){_0x130395+=',';}_0x130395+=_0x441c4b[_0x96b7('0x6')][_0x34a43f][_0x96b7('0xb')]||_0x441c4b[_0x96b7('0x6')][_0x34a43f]['address']||'';_0x130395+='\x20<';_0x130395+=_0x441c4b[_0x96b7('0x6')][_0x34a43f][_0x96b7('0x7')]?_0x441c4b['value'][_0x34a43f][_0x96b7('0x7')]:'anonymous'+random['generate'](0x6)+'@xcally.com';_0x130395+='>';}}return _0x130395;}function parseEmail(_0x1afa59,_0x1a8c74,_0x1ae68b){if(_0x1a8c74[_0x96b7('0x14')]){var _0x80017=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x80017[_0x96b7('0x15')](_0x1a8c74['html'])){_0x1a8c74[_0x96b7('0x14')]=_0x1a8c74[_0x96b7('0x14')][_0x96b7('0x16')](_0x80017,'');}if(_0x1a8c74[_0x96b7('0x14')][_0x96b7('0x17')](_0x96b7('0x18'))){var _0x34250d=[];_0x1a8c74[_0x96b7('0x19')][_0x96b7('0x1a')](_0x45cdb2=>{_0x34250d[_0x96b7('0x1b')](_0x45cdb2[_0x96b7('0x1c')]);});var _0xf23f4d=/<img.*? _SRC(.*?)[^>]+>/g;var _0x1b9e08=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x202230=_0x1a8c74['html']['replace'](_0x1b9e08,_0x96b7('0x1d'));var _0x39d99d=_0x202230['replace'](_0xf23f4d,_0x96b7('0x1e'));for(let _0x318f74=0x0;_0x318f74<_0x34250d[_0x96b7('0xe')];_0x318f74++){var _0x315de8=_0x39d99d['replace']('_IMG',_0x96b7('0x1f')+_0x34250d[_0x318f74]+'\x20]</span>');_0x39d99d=_0x315de8;}_0x1a8c74[_0x96b7('0x14')]=_0x39d99d;}_0x1ae68b[_0x96b7('0x20')]=_0x1a8c74[_0x96b7('0x14')];}else{_0x1ae68b['body']=_0x1a8c74[_0x96b7('0x21')];}if(_0x1ae68b['body']){_0x1ae68b[_0x96b7('0x20')]=_0x1ae68b['body'][_0x96b7('0x16')](/<a\s+/gi,_0x96b7('0x22'));}if(_0x1a8c74['to']){_0x1ae68b[_0x96b7('0x23')][_0x96b7('0x24')]=getMails(null,_0x1a8c74['to']);var _0x58a4f7=getMails(_0x1afa59[_0x96b7('0x4')],_0x1a8c74['to']);if(!_['isEmpty'](_0x58a4f7)){_0x1ae68b['message']['cc']+=_0x58a4f7;}}if(_0x1a8c74['cc']){_0x1ae68b[_0x96b7('0x23')]['originCc']=getMails(null,_0x1a8c74['cc']);var _0x317a65=getMails(_0x1afa59[_0x96b7('0x4')],_0x1a8c74['cc']);if(!_['isEmpty'](_0x317a65)){if(!_[_0x96b7('0x13')](_0x1ae68b[_0x96b7('0x23')]['cc'])){_0x1ae68b[_0x96b7('0x23')]['cc']+=',';}_0x1ae68b[_0x96b7('0x23')]['cc']+=_0x317a65;}}if(!_[_0x96b7('0x17')](_0x1ae68b[_0x96b7('0x23')][_0x96b7('0x24')],_0x1afa59['email'])&&!_[_0x96b7('0x17')](_0x1ae68b['message'][_0x96b7('0x25')],_0x1afa59[_0x96b7('0x4')])){_0x1ae68b['message'][_0x96b7('0x26')]=_0x1afa59[_0x96b7('0x4')];}if(_0x1a8c74[_0x96b7('0x19')]&&_0x1a8c74[_0x96b7('0x19')]['length']){_0x1ae68b['message'][_0x96b7('0x27')]=_0x1a8c74['attachments'][_0x96b7('0xe')];for(var _0x41dc4c=0x0,_0xc0a824,_0x40b418,_0x4bceae;_0x41dc4c<_0x1a8c74['attachments'][_0x96b7('0xe')];_0x41dc4c+=0x1){if(_0x1a8c74[_0x96b7('0x19')][_0x41dc4c][_0x96b7('0x28')]===_0x96b7('0x29')){_0x4bceae=_0x1a8c74[_0x96b7('0x19')][_0x41dc4c]['filename']||_0x96b7('0x2a')+_0x41dc4c;_0xc0a824=util[_0x96b7('0x2b')](_0x96b7('0x2c'),Date[_0x96b7('0x2d')](),_0x4bceae);_0x40b418=path[_0x96b7('0x10')](config[_0x96b7('0x2e')],_0x96b7('0x2f'),_0xc0a824);fs[_0x96b7('0x30')](_0x40b418,_0x1a8c74[_0x96b7('0x19')][_0x41dc4c][_0x96b7('0x31')]);_0x1ae68b['message'][_0x96b7('0x19')][_0x96b7('0x1b')]({'name':_0x4bceae,'basename':_0xc0a824,'type':_0x1a8c74[_0x96b7('0x19')][_0x41dc4c]['contentType'],'filepath':_0x40b418});}}}if(_0x1a8c74[_0x96b7('0x32')]&&_0x1a8c74[_0x96b7('0x32')][_0x96b7('0xe')]>0x0){var _0x365329=[_0x96b7('0x33'),_0x96b7('0x34'),'Precedence:\x20auto_reply'];for(var _0xf0d472=0x0;_0xf0d472<_0x1a8c74[_0x96b7('0x32')][_0x96b7('0xe')];_0xf0d472++){var _0x3558e6=_[_0x96b7('0x35')](_0x365329,_0x1a8c74[_0x96b7('0x32')][_0xf0d472]['line']);if(_0x3558e6>=0x0){_0x1ae68b[_0x96b7('0x36')]=!![];}}}return _0x1ae68b;}exports[_0x96b7('0x37')]=function(_0x46a2af,_0x34cb3d,_0x18b7da){var _0xd2d6a5={'from':getAddress(_0x34cb3d['from']),'firstName':getFirstName(_0x34cb3d[_0x96b7('0x38')]),'lastName':getLastName(_0x34cb3d['from']),'mapKey':'email','message':{'from':getMails(_0x46a2af[_0x96b7('0x4')],_0x34cb3d[_0x96b7('0x38')]),'to':_0x46a2af['email'],'cc':'','subject':_0x34cb3d[_0x96b7('0x39')]||'','messageId':_0x34cb3d[_0x96b7('0x3a')],'inReplyTo':_0x34cb3d[_0x96b7('0x3b')],'sentAt':moment(_0x34cb3d['date'])[_0x96b7('0x2b')](_0x96b7('0x3c')),'attach':![],'attachments':[]}};if(!_0x34cb3d[_0x96b7('0x14')]&&!_0x34cb3d[_0x96b7('0x21')]){var _0x23dce8=_['filter'](_0x34cb3d[_0x96b7('0x19')],{'contentType':_0x96b7('0x3d')});if(_0x23dce8[_0x96b7('0xe')]){logger[_0x96b7('0x3e')](util['format'](_0x96b7('0x3f'),_0x34cb3d[_0x96b7('0x3a')]));tnef[_0x96b7('0x40')](_[_0x96b7('0x41')](_0x23dce8)[_0x96b7('0x31')],function(_0x20d319,_0x245c7f){if(_0x245c7f){_0x34cb3d[_0x96b7('0x14')]=_0x245c7f[_0x96b7('0x42')]||'<p>Empty\x20message</p>';if(_0x245c7f[_0x96b7('0x43')]){for(var _0x1a9742=0x0;_0x1a9742<_0x245c7f['Attachments'][_0x96b7('0xe')];_0x1a9742++){var _0x2a29d8=_0x245c7f[_0x96b7('0x43')][_0x1a9742];_0xd2d6a5[_0x96b7('0x23')]['attachments'][_0x96b7('0x1b')]({'filename':_0x2a29d8[_0x96b7('0x44')],'content':Buffer['from'](_0x2a29d8[_0x96b7('0x45')])});}}}_0x18b7da(parseEmail(_0x46a2af,_0x34cb3d,_0xd2d6a5));});}else{_0x34cb3d['html']='<p>Empty\x20message</p>';_0x18b7da(parseEmail(_0x46a2af,_0x34cb3d,_0xd2d6a5));}}else{_0x18b7da(parseEmail(_0x46a2af,_0x34cb3d,_0xd2d6a5));}};exports[_0x96b7('0x46')]=function(_0x4de640,_0x4d5a1c){var _0xe2e2e5=[_0x96b7('0x47')+(_0x4d5a1c||''),_0x96b7('0x48')+_0x4de640,'',''];return Buffer[_0x96b7('0x38')](_0xe2e2e5['join']('\ 1'),'utf-8')[_0x96b7('0x49')](_0x96b7('0x4a'));};