Built motion from commit 775e2a94.|2.6.3
[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 _0x7b22=['indexOf','split','length','slice','join','Anonymous','test','html','replace','includes','attachments','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','textAsHtml','body','<a\x20target=\x22_blank\x22\x20','message','originTo','isEmpty','originCc','attach','attachment','attachment-','format','%s-%s','writeFileSync','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','from','messageId','date','YYYY-MM-DD\x20HH:mm:ss','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','moment','randomstring','path','util','node-tnef','email','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name'];(function(_0x170395,_0x4297d3){var _0x54aef0=function(_0x39ce41){while(--_0x39ce41){_0x170395['push'](_0x170395['shift']());}};_0x54aef0(++_0x4297d3);}(_0x7b22,0x1e9));var _0x27b2=function(_0x1b964a,_0x40fdc2){_0x1b964a=_0x1b964a-0x0;var _0x2559fa=_0x7b22[_0x1b964a];return _0x2559fa;};'use strict';var _=require(_0x27b2('0x0'));var moment=require(_0x27b2('0x1'));var random=require(_0x27b2('0x2'));var fs=require('fs');var path=require(_0x27b2('0x3'));var util=require(_0x27b2('0x4'));var tnef=require(_0x27b2('0x5'));var logger=require('../../../config/logger')(_0x27b2('0x6'));var config=require(_0x27b2('0x7'));function getAddress(_0x47b1fd){var _0x40d60c=_[_0x27b2('0x8')](_0x47b1fd[_0x27b2('0x9')]);return _0x40d60c&&_0x40d60c[_0x27b2('0xa')]?_0x40d60c[_0x27b2('0xa')]:_0x27b2('0xb')+random[_0x27b2('0xc')](0x6)+_0x27b2('0xd');}function getFirstName(_0x232c9a){var _0x494035=_[_0x27b2('0x8')](_0x232c9a['value']);if(_0x494035&&_0x494035['name']){if(_0x494035[_0x27b2('0xe')]==_0x494035[_0x27b2('0xa')]){return _0x494035['name']['substring'](0x0,_0x494035[_0x27b2('0xe')][_0x27b2('0xf')]('@'));}var _0x317f18=_0x494035[_0x27b2('0xe')][_0x27b2('0x10')](/\s+/);return _0x317f18[_0x27b2('0x11')]>0x1?_0x317f18[_0x27b2('0x12')](0x0,-0x1)[_0x27b2('0x13')]('\x20'):_0x494035[_0x27b2('0xe')];}return _0x27b2('0x14');}function getLastName(_0x327a23){var _0xaf5a2d=_[_0x27b2('0x8')](_0x327a23[_0x27b2('0x9')]);if(_0xaf5a2d&&_0xaf5a2d['name']){var _0x3946ec=_0xaf5a2d[_0x27b2('0xe')][_0x27b2('0x10')](/\s+/);return _0x3946ec[_0x27b2('0x11')]>0x1?_0x3946ec['pop']():'';}return'';}function getMails(_0x5bbd35,_0x114ad0){var _0x4215ca='';for(var _0x5f0b0f=0x0;_0x5f0b0f<_0x114ad0[_0x27b2('0x9')][_0x27b2('0x11')];_0x5f0b0f+=0x1){if(_0x114ad0[_0x27b2('0x9')][_0x5f0b0f]['address']!==_0x5bbd35){if(!_['isEmpty'](_0x4215ca)){_0x4215ca+=',';}_0x4215ca+=_0x114ad0[_0x27b2('0x9')][_0x5f0b0f]['name']||_0x114ad0[_0x27b2('0x9')][_0x5f0b0f][_0x27b2('0xa')]||'';_0x4215ca+='\x20<';_0x4215ca+=_0x114ad0[_0x27b2('0x9')][_0x5f0b0f][_0x27b2('0xa')]?_0x114ad0[_0x27b2('0x9')][_0x5f0b0f]['address']:_0x27b2('0xb')+random[_0x27b2('0xc')](0x6)+'@xcally.com';_0x4215ca+='>';}}return _0x4215ca;}function parseEmail(_0x40ef9c,_0x14d10a,_0x1e8f8f){if(_0x14d10a['html']){var _0x1cda71=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1cda71[_0x27b2('0x15')](_0x14d10a[_0x27b2('0x16')])){_0x14d10a['html']=_0x14d10a[_0x27b2('0x16')][_0x27b2('0x17')](_0x1cda71,'');}if(_0x14d10a[_0x27b2('0x16')][_0x27b2('0x18')]('<img')){var _0x5f46d4=[];_0x14d10a[_0x27b2('0x19')]['forEach'](_0x2bb317=>{_0x5f46d4[_0x27b2('0x1a')](_0x2bb317[_0x27b2('0x1b')]);});var _0x3042a4=/<img.*? _SRC(.*?)[^>]+>/g;var _0x1f0c13=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x6d1dbc=_0x14d10a[_0x27b2('0x16')][_0x27b2('0x17')](_0x1f0c13,_0x27b2('0x1c'));var _0x922429=_0x6d1dbc[_0x27b2('0x17')](_0x3042a4,_0x27b2('0x1d'));for(let _0x47a751=0x0;_0x47a751<_0x5f46d4[_0x27b2('0x11')];_0x47a751++){var _0x4389c1=_0x922429[_0x27b2('0x17')](_0x27b2('0x1d'),_0x27b2('0x1e')+_0x5f46d4[_0x47a751]+_0x27b2('0x1f'));_0x922429=_0x4389c1;}_0x14d10a[_0x27b2('0x16')]=_0x922429;}_0x1e8f8f['body']=_0x14d10a[_0x27b2('0x16')];}else{_0x1e8f8f['body']=_0x14d10a[_0x27b2('0x20')];}if(_0x1e8f8f[_0x27b2('0x21')]){_0x1e8f8f[_0x27b2('0x21')]=_0x1e8f8f[_0x27b2('0x21')]['replace'](/<a\s+/gi,_0x27b2('0x22'));}if(_0x14d10a['to']){_0x1e8f8f[_0x27b2('0x23')][_0x27b2('0x24')]=getMails(null,_0x14d10a['to']);var _0xed3b6a=getMails(_0x40ef9c['email'],_0x14d10a['to']);if(!_[_0x27b2('0x25')](_0xed3b6a)){_0x1e8f8f['message']['cc']+=_0xed3b6a;}}if(_0x14d10a['cc']){_0x1e8f8f['message'][_0x27b2('0x26')]=getMails(null,_0x14d10a['cc']);var _0x2b6cfd=getMails(_0x40ef9c[_0x27b2('0x6')],_0x14d10a['cc']);if(!_['isEmpty'](_0x2b6cfd)){if(!_['isEmpty'](_0x1e8f8f['message']['cc'])){_0x1e8f8f[_0x27b2('0x23')]['cc']+=',';}_0x1e8f8f[_0x27b2('0x23')]['cc']+=_0x2b6cfd;}}if(!_[_0x27b2('0x18')](_0x1e8f8f['message'][_0x27b2('0x24')],_0x40ef9c['email'])&&!_[_0x27b2('0x18')](_0x1e8f8f['message'][_0x27b2('0x26')],_0x40ef9c[_0x27b2('0x6')])){_0x1e8f8f[_0x27b2('0x23')]['bcc']=_0x40ef9c[_0x27b2('0x6')];}if(_0x14d10a[_0x27b2('0x19')]&&_0x14d10a[_0x27b2('0x19')][_0x27b2('0x11')]){_0x1e8f8f[_0x27b2('0x23')][_0x27b2('0x27')]=_0x14d10a['attachments']['length'];for(var _0x49ac97=0x0,_0x243bf9,_0x54c65a,_0x3156f4;_0x49ac97<_0x14d10a[_0x27b2('0x19')][_0x27b2('0x11')];_0x49ac97+=0x1){if(_0x14d10a[_0x27b2('0x19')][_0x49ac97]['type']===_0x27b2('0x28')){_0x3156f4=_0x14d10a['attachments'][_0x49ac97]['filename']||_0x27b2('0x29')+_0x49ac97;_0x243bf9=util[_0x27b2('0x2a')](_0x27b2('0x2b'),Date['now'](),_0x3156f4);_0x54c65a=path[_0x27b2('0x13')](config['root'],'server/files/attachments/',_0x243bf9);fs[_0x27b2('0x2c')](_0x54c65a,_0x14d10a[_0x27b2('0x19')][_0x49ac97]['content']);_0x1e8f8f['message'][_0x27b2('0x19')][_0x27b2('0x1a')]({'name':_0x3156f4,'basename':_0x243bf9,'type':_0x14d10a['attachments'][_0x49ac97][_0x27b2('0x2d')],'filepath':_0x54c65a});}}}if(_0x14d10a[_0x27b2('0x2e')]&&_0x14d10a[_0x27b2('0x2e')][_0x27b2('0x11')]>0x0){var _0x256fee=[_0x27b2('0x2f'),_0x27b2('0x30'),_0x27b2('0x31')];for(var _0x48df71=0x0;_0x48df71<_0x14d10a[_0x27b2('0x2e')][_0x27b2('0x11')];_0x48df71++){var _0x2693ee=_[_0x27b2('0xf')](_0x256fee,_0x14d10a['headerLines'][_0x48df71][_0x27b2('0x32')]);if(_0x2693ee>=0x0){_0x1e8f8f[_0x27b2('0x33')]=!![];}}}return _0x1e8f8f;}exports['parser']=function(_0x4e5c9e,_0x3935e0,_0x5ddebd){var _0xac1a5c={'from':getAddress(_0x3935e0[_0x27b2('0x34')]),'firstName':getFirstName(_0x3935e0[_0x27b2('0x34')]),'lastName':getLastName(_0x3935e0[_0x27b2('0x34')]),'mapKey':_0x27b2('0x6'),'message':{'from':getMails(_0x4e5c9e[_0x27b2('0x6')],_0x3935e0['from']),'to':_0x4e5c9e['email'],'cc':'','subject':_0x3935e0['subject']||'','messageId':_0x3935e0[_0x27b2('0x35')],'inReplyTo':_0x3935e0['inReplyTo'],'sentAt':moment(_0x3935e0[_0x27b2('0x36')])[_0x27b2('0x2a')](_0x27b2('0x37')),'attach':![],'attachments':[]}};if(!_0x3935e0[_0x27b2('0x16')]&&!_0x3935e0[_0x27b2('0x20')]){var _0x116381=_[_0x27b2('0x38')](_0x3935e0[_0x27b2('0x19')],{'contentType':_0x27b2('0x39')});if(_0x116381[_0x27b2('0x11')]){logger[_0x27b2('0x3a')](util[_0x27b2('0x2a')](_0x27b2('0x3b'),_0x3935e0[_0x27b2('0x35')]));tnef[_0x27b2('0x3c')](_['first'](_0x116381)['content'],function(_0x49f238,_0x1df211){if(_0x1df211){_0x3935e0[_0x27b2('0x16')]=_0x1df211[_0x27b2('0x3d')]||_0x27b2('0x3e');if(_0x1df211[_0x27b2('0x3f')]){for(var _0x5d80f8=0x0;_0x5d80f8<_0x1df211[_0x27b2('0x3f')][_0x27b2('0x11')];_0x5d80f8++){var _0x141c42=_0x1df211[_0x27b2('0x3f')][_0x5d80f8];_0xac1a5c[_0x27b2('0x23')][_0x27b2('0x19')][_0x27b2('0x1a')]({'filename':_0x141c42[_0x27b2('0x40')],'content':Buffer[_0x27b2('0x34')](_0x141c42[_0x27b2('0x41')])});}}}_0x5ddebd(parseEmail(_0x4e5c9e,_0x3935e0,_0xac1a5c));});}else{_0x3935e0[_0x27b2('0x16')]=_0x27b2('0x3e');_0x5ddebd(parseEmail(_0x4e5c9e,_0x3935e0,_0xac1a5c));}}else{_0x5ddebd(parseEmail(_0x4e5c9e,_0x3935e0,_0xac1a5c));}};exports[_0x27b2('0x42')]=function(_0x8bc12a,_0x1572a7){var _0xb177c8=[_0x27b2('0x43')+(_0x1572a7||''),_0x27b2('0x44')+_0x8bc12a,'',''];return Buffer[_0x27b2('0x34')](_0xb177c8['join']('\ 1'),_0x27b2('0x45'))[_0x27b2('0x46')](_0x27b2('0x47'));};