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 _0x1ea3=['../../../config/environment','generate','@xcally.com','value','name','substring','indexOf','slice','join','Anonymous','head','length','pop','address','isEmpty','anonymous','html','test','replace','includes','<img','attachments','forEach','push','_SRC','_IMG','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originCc','email','bcc','attach','attachment','filename','attachment-','format','%s-%s','now','root','server/files/attachments/','contentType','headerLines','Auto-Submitted:\x20auto-replied','Precedence:\x20auto_reply','line','isAutoreply','from','subject','messageId','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','filter','info','parseBuffer','first','content','BodyHTML','Attachments','Title','Data','<p>Empty\x20message</p>','generateXOAuth2Token','auth=Bearer\x20','utf-8','toString','base64','moment','randomstring','path','util','node-tnef','../../../config/logger'];(function(_0x962fa2,_0x59d469){var _0x3411e3=function(_0x11398b){while(--_0x11398b){_0x962fa2['push'](_0x962fa2['shift']());}};_0x3411e3(++_0x59d469);}(_0x1ea3,0x1c2));var _0x31ea=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x1ea3[_0x465a0c];return _0x1e202e;};'use strict';var _=require('lodash');var moment=require(_0x31ea('0x0'));var random=require(_0x31ea('0x1'));var fs=require('fs');var path=require(_0x31ea('0x2'));var util=require(_0x31ea('0x3'));var tnef=require(_0x31ea('0x4'));var logger=require(_0x31ea('0x5'))('email');var config=require(_0x31ea('0x6'));function getAddress(_0xf1d998){var _0xe53963=_['head'](_0xf1d998['value']);return _0xe53963&&_0xe53963['address']?_0xe53963['address']:'anonymous'+random[_0x31ea('0x7')](0x6)+_0x31ea('0x8');}function getFirstName(_0x3dec7b){var _0x3b10ce=_['head'](_0x3dec7b[_0x31ea('0x9')]);if(_0x3b10ce&&_0x3b10ce[_0x31ea('0xa')]){if(_0x3b10ce[_0x31ea('0xa')]==_0x3b10ce['address']){return _0x3b10ce[_0x31ea('0xa')][_0x31ea('0xb')](0x0,_0x3b10ce['name'][_0x31ea('0xc')]('@'));}var _0xc580ec=_0x3b10ce['name']['split'](/\s+/);return _0xc580ec['length']>0x1?_0xc580ec[_0x31ea('0xd')](0x0,-0x1)[_0x31ea('0xe')]('\x20'):_0x3b10ce[_0x31ea('0xa')];}return _0x31ea('0xf');}function getLastName(_0x20e87b){var _0x3623a1=_[_0x31ea('0x10')](_0x20e87b[_0x31ea('0x9')]);if(_0x3623a1&&_0x3623a1[_0x31ea('0xa')]){var _0x5bc1de=_0x3623a1[_0x31ea('0xa')]['split'](/\s+/);return _0x5bc1de[_0x31ea('0x11')]>0x1?_0x5bc1de[_0x31ea('0x12')]():'';}return'';}function getMails(_0x36f2c8,_0x29dd62){var _0xa21e62='';for(var _0x5140d7=0x0;_0x5140d7<_0x29dd62[_0x31ea('0x9')][_0x31ea('0x11')];_0x5140d7+=0x1){if(_0x29dd62['value'][_0x5140d7][_0x31ea('0x13')]!==_0x36f2c8){if(!_[_0x31ea('0x14')](_0xa21e62)){_0xa21e62+=',';}_0xa21e62+=_0x29dd62['value'][_0x5140d7][_0x31ea('0xa')]||_0x29dd62[_0x31ea('0x9')][_0x5140d7]['address']||'';_0xa21e62+='\x20<';_0xa21e62+=_0x29dd62[_0x31ea('0x9')][_0x5140d7][_0x31ea('0x13')]?_0x29dd62[_0x31ea('0x9')][_0x5140d7][_0x31ea('0x13')]:_0x31ea('0x15')+random[_0x31ea('0x7')](0x6)+_0x31ea('0x8');_0xa21e62+='>';}}return _0xa21e62;}function parseEmail(_0xb713e9,_0x50f9b0,_0x4d438e){if(_0x50f9b0[_0x31ea('0x16')]){var _0x10e859=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x10e859[_0x31ea('0x17')](_0x50f9b0['html'])){_0x50f9b0[_0x31ea('0x16')]=_0x50f9b0[_0x31ea('0x16')][_0x31ea('0x18')](_0x10e859,'');}if(_0x50f9b0[_0x31ea('0x16')][_0x31ea('0x19')](_0x31ea('0x1a'))){var _0x288d59=[];_0x50f9b0[_0x31ea('0x1b')][_0x31ea('0x1c')](_0xc61874=>{_0x288d59[_0x31ea('0x1d')](_0xc61874['filename']);});var _0x527eb5=/<img.*? _SRC(.*?)[^>]+>/g;var _0x43b1c8=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x4cb12b=_0x50f9b0[_0x31ea('0x16')]['replace'](_0x43b1c8,_0x31ea('0x1e'));var _0x3b871b=_0x4cb12b[_0x31ea('0x18')](_0x527eb5,_0x31ea('0x1f'));for(let _0x5ec003=0x0;_0x5ec003<_0x288d59['length'];_0x5ec003++){var _0xd61778=_0x3b871b[_0x31ea('0x18')]('_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x288d59[_0x5ec003]+_0x31ea('0x20'));_0x3b871b=_0xd61778;}_0x50f9b0[_0x31ea('0x16')]=_0x3b871b;}_0x4d438e['body']=_0x50f9b0[_0x31ea('0x16')];}else{_0x4d438e[_0x31ea('0x21')]=_0x50f9b0[_0x31ea('0x22')];}if(_0x4d438e[_0x31ea('0x21')]){_0x4d438e[_0x31ea('0x21')]=_0x4d438e[_0x31ea('0x21')][_0x31ea('0x18')](/<a\s+/gi,_0x31ea('0x23'));}if(_0x50f9b0['to']){_0x4d438e[_0x31ea('0x24')]['originTo']=getMails(null,_0x50f9b0['to']);var _0x5a3247=getMails(_0xb713e9['email'],_0x50f9b0['to']);if(!_[_0x31ea('0x14')](_0x5a3247)){_0x4d438e['message']['cc']+=_0x5a3247;}}if(_0x50f9b0['cc']){_0x4d438e[_0x31ea('0x24')][_0x31ea('0x25')]=getMails(null,_0x50f9b0['cc']);var _0x4f8b55=getMails(_0xb713e9[_0x31ea('0x26')],_0x50f9b0['cc']);if(!_[_0x31ea('0x14')](_0x4f8b55)){if(!_[_0x31ea('0x14')](_0x4d438e[_0x31ea('0x24')]['cc'])){_0x4d438e['message']['cc']+=',';}_0x4d438e[_0x31ea('0x24')]['cc']+=_0x4f8b55;}}if(!_[_0x31ea('0x19')](_0x4d438e[_0x31ea('0x24')]['originTo'],_0xb713e9[_0x31ea('0x26')])&&!_['includes'](_0x4d438e[_0x31ea('0x24')][_0x31ea('0x25')],_0xb713e9[_0x31ea('0x26')])){_0x4d438e[_0x31ea('0x24')][_0x31ea('0x27')]=_0xb713e9[_0x31ea('0x26')];}if(_0x50f9b0['attachments']&&_0x50f9b0[_0x31ea('0x1b')][_0x31ea('0x11')]){_0x4d438e[_0x31ea('0x24')][_0x31ea('0x28')]=_0x50f9b0[_0x31ea('0x1b')][_0x31ea('0x11')];for(var _0x4274ac=0x0,_0x3f52e0,_0x173954,_0x180d4d;_0x4274ac<_0x50f9b0[_0x31ea('0x1b')]['length'];_0x4274ac+=0x1){if(_0x50f9b0['attachments'][_0x4274ac]['type']===_0x31ea('0x29')){_0x180d4d=_0x50f9b0['attachments'][_0x4274ac][_0x31ea('0x2a')]||_0x31ea('0x2b')+_0x4274ac;_0x3f52e0=util[_0x31ea('0x2c')](_0x31ea('0x2d'),Date[_0x31ea('0x2e')](),_0x180d4d);_0x173954=path[_0x31ea('0xe')](config[_0x31ea('0x2f')],_0x31ea('0x30'),_0x3f52e0);fs['writeFileSync'](_0x173954,_0x50f9b0[_0x31ea('0x1b')][_0x4274ac]['content']);_0x4d438e[_0x31ea('0x24')]['attachments'][_0x31ea('0x1d')]({'name':_0x180d4d,'basename':_0x3f52e0,'type':_0x50f9b0[_0x31ea('0x1b')][_0x4274ac][_0x31ea('0x31')],'filepath':_0x173954});}}}if(_0x50f9b0['headerLines']&&_0x50f9b0[_0x31ea('0x32')][_0x31ea('0x11')]>0x0){var _0x36954f=[_0x31ea('0x33'),'X-Auto-Response-Suppress:\x20All',_0x31ea('0x34')];for(var _0x526115=0x0;_0x526115<_0x50f9b0[_0x31ea('0x32')][_0x31ea('0x11')];_0x526115++){var _0x4e0638=_['indexOf'](_0x36954f,_0x50f9b0['headerLines'][_0x526115][_0x31ea('0x35')]);if(_0x4e0638>=0x0){_0x4d438e[_0x31ea('0x36')]=!![];}}}return _0x4d438e;}exports['parser']=function(_0x4aeb41,_0x409699,_0x498140){var _0xb05edc={'from':getAddress(_0x409699[_0x31ea('0x37')]),'firstName':getFirstName(_0x409699['from']),'lastName':getLastName(_0x409699['from']),'mapKey':'email','message':{'from':getMails(_0x4aeb41[_0x31ea('0x26')],_0x409699['from']),'to':_0x4aeb41[_0x31ea('0x26')],'cc':'','subject':_0x409699[_0x31ea('0x38')]||'','messageId':_0x409699[_0x31ea('0x39')],'inReplyTo':_0x409699[_0x31ea('0x3a')],'sentAt':moment(_0x409699[_0x31ea('0x3b')])['format'](_0x31ea('0x3c')),'attach':![],'attachments':[]}};if(!_0x409699[_0x31ea('0x16')]&&!_0x409699[_0x31ea('0x22')]){var _0x3a88f6=_[_0x31ea('0x3d')](_0x409699[_0x31ea('0x1b')],{'contentType':'application/ms-tnef'});if(_0x3a88f6[_0x31ea('0x11')]){logger[_0x31ea('0x3e')](util['format']('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x409699[_0x31ea('0x39')]));tnef[_0x31ea('0x3f')](_[_0x31ea('0x40')](_0x3a88f6)[_0x31ea('0x41')],function(_0x124418,_0x201985){if(_0x201985){_0x409699['html']=_0x201985[_0x31ea('0x42')]||'<p>Empty\x20message</p>';if(_0x201985[_0x31ea('0x43')]){for(var _0x486b96=0x0;_0x486b96<_0x201985[_0x31ea('0x43')][_0x31ea('0x11')];_0x486b96++){var _0x482a97=_0x201985[_0x31ea('0x43')][_0x486b96];_0xb05edc[_0x31ea('0x24')]['attachments']['push']({'filename':_0x482a97[_0x31ea('0x44')],'content':Buffer['from'](_0x482a97[_0x31ea('0x45')])});}}}_0x498140(parseEmail(_0x4aeb41,_0x409699,_0xb05edc));});}else{_0x409699[_0x31ea('0x16')]=_0x31ea('0x46');_0x498140(parseEmail(_0x4aeb41,_0x409699,_0xb05edc));}}else{_0x498140(parseEmail(_0x4aeb41,_0x409699,_0xb05edc));}};exports[_0x31ea('0x47')]=function(_0x27e1b6,_0x55b108){var _0x24a45c=['user='+(_0x55b108||''),_0x31ea('0x48')+_0x27e1b6,'',''];return Buffer[_0x31ea('0x37')](_0x24a45c[_0x31ea('0xe')]('\ 1'),_0x31ea('0x49'))[_0x31ea('0x4a')](_0x31ea('0x4b'));};