1b9835485acf563664eae10dbeda369fa22a3e8d
[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 _0x3c54=['value','address','@xcally.com','name','indexOf','split','length','slice','Anonymous','pop','isEmpty','anonymous','html','test','replace','includes','<img','attachments','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','originTo','message','originCc','attach','type','attachment','attachment-','format','%s-%s','root','writeFileSync','content','contentType','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','parser','from','subject','messageId','inReplyTo','date','filter','application/ms-tnef','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','generateXOAuth2Token','user=','auth=Bearer\x20','base64','lodash','randomstring','path','util','node-tnef','email','../../../config/environment','head'];(function(_0x37cde1,_0x250d40){var _0x797e60=function(_0x4f5687){while(--_0x4f5687){_0x37cde1['push'](_0x37cde1['shift']());}};_0x797e60(++_0x250d40);}(_0x3c54,0x82));var _0x43c5=function(_0x2127d1,_0x206e47){_0x2127d1=_0x2127d1-0x0;var _0x55df06=_0x3c54[_0x2127d1];return _0x55df06;};'use strict';var _=require(_0x43c5('0x0'));var moment=require('moment');var random=require(_0x43c5('0x1'));var fs=require('fs');var path=require(_0x43c5('0x2'));var util=require(_0x43c5('0x3'));var tnef=require(_0x43c5('0x4'));var logger=require('../../../config/logger')(_0x43c5('0x5'));var config=require(_0x43c5('0x6'));function getAddress(_0x20b08a){var _0x1778c4=_[_0x43c5('0x7')](_0x20b08a[_0x43c5('0x8')]);return _0x1778c4&&_0x1778c4[_0x43c5('0x9')]?_0x1778c4[_0x43c5('0x9')]:'anonymous'+random['generate'](0x6)+_0x43c5('0xa');}function getFirstName(_0x147f8b){var _0x1017a5=_[_0x43c5('0x7')](_0x147f8b[_0x43c5('0x8')]);if(_0x1017a5&&_0x1017a5[_0x43c5('0xb')]){if(_0x1017a5[_0x43c5('0xb')]==_0x1017a5['address']){return _0x1017a5[_0x43c5('0xb')]['substring'](0x0,_0x1017a5['name'][_0x43c5('0xc')]('@'));}var _0x1a63e0=_0x1017a5['name'][_0x43c5('0xd')](/\s+/);return _0x1a63e0[_0x43c5('0xe')]>0x1?_0x1a63e0[_0x43c5('0xf')](0x0,-0x1)['join']('\x20'):_0x1017a5[_0x43c5('0xb')];}return _0x43c5('0x10');}function getLastName(_0x5ce154){var _0x215513=_[_0x43c5('0x7')](_0x5ce154['value']);if(_0x215513&&_0x215513[_0x43c5('0xb')]){var _0x4edf33=_0x215513[_0x43c5('0xb')][_0x43c5('0xd')](/\s+/);return _0x4edf33[_0x43c5('0xe')]>0x1?_0x4edf33[_0x43c5('0x11')]():'';}return'';}function getMails(_0x1c26b7,_0x579bf7){var _0x89761c='';for(var _0x5ad2ba=0x0;_0x5ad2ba<_0x579bf7[_0x43c5('0x8')][_0x43c5('0xe')];_0x5ad2ba+=0x1){if(_0x579bf7[_0x43c5('0x8')][_0x5ad2ba][_0x43c5('0x9')]!==_0x1c26b7){if(!_[_0x43c5('0x12')](_0x89761c)){_0x89761c+=',';}_0x89761c+=_0x579bf7[_0x43c5('0x8')][_0x5ad2ba][_0x43c5('0xb')]||_0x579bf7[_0x43c5('0x8')][_0x5ad2ba]['address']||'';_0x89761c+='\x20<';_0x89761c+=_0x579bf7[_0x43c5('0x8')][_0x5ad2ba][_0x43c5('0x9')]?_0x579bf7['value'][_0x5ad2ba][_0x43c5('0x9')]:_0x43c5('0x13')+random['generate'](0x6)+'@xcally.com';_0x89761c+='>';}}return _0x89761c;}function parseEmail(_0x1df698,_0x32c5b6,_0x3db6ba){if(_0x32c5b6[_0x43c5('0x14')]){var _0x474a47=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x474a47[_0x43c5('0x15')](_0x32c5b6[_0x43c5('0x14')])){_0x32c5b6[_0x43c5('0x14')]=_0x32c5b6[_0x43c5('0x14')][_0x43c5('0x16')](_0x474a47,'');}if(_0x32c5b6[_0x43c5('0x14')][_0x43c5('0x17')](_0x43c5('0x18'))){var _0x3f4f2d=[];_0x32c5b6[_0x43c5('0x19')]['forEach'](_0x5b3cd2=>{_0x3f4f2d[_0x43c5('0x1a')](_0x5b3cd2[_0x43c5('0x1b')]);});var _0x52920=/<img.*? _SRC(.*?)[^>]+>/g;var _0x269ae8=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x3384c6=_0x32c5b6[_0x43c5('0x14')][_0x43c5('0x16')](_0x269ae8,_0x43c5('0x1c'));var _0x31a638=_0x3384c6['replace'](_0x52920,_0x43c5('0x1d'));for(let _0x3949ed=0x0;_0x3949ed<_0x3f4f2d[_0x43c5('0xe')];_0x3949ed++){var _0x2dc780=_0x31a638['replace'](_0x43c5('0x1d'),_0x43c5('0x1e')+_0x3f4f2d[_0x3949ed]+_0x43c5('0x1f'));_0x31a638=_0x2dc780;}_0x32c5b6['html']=_0x31a638;}_0x3db6ba[_0x43c5('0x20')]=_0x32c5b6[_0x43c5('0x14')];}else{_0x3db6ba['body']=_0x32c5b6[_0x43c5('0x21')];}if(_0x3db6ba[_0x43c5('0x20')]){_0x3db6ba['body']=_0x3db6ba['body']['replace'](/<a\s+/gi,_0x43c5('0x22'));}if(_0x32c5b6['to']){_0x3db6ba['message'][_0x43c5('0x23')]=getMails(null,_0x32c5b6['to']);var _0x5e84e8=getMails(_0x1df698['email'],_0x32c5b6['to']);if(!_[_0x43c5('0x12')](_0x5e84e8)){_0x3db6ba[_0x43c5('0x24')]['cc']+=_0x5e84e8;}}if(_0x32c5b6['cc']){_0x3db6ba[_0x43c5('0x24')][_0x43c5('0x25')]=getMails(null,_0x32c5b6['cc']);var _0x21bc6f=getMails(_0x1df698[_0x43c5('0x5')],_0x32c5b6['cc']);if(!_[_0x43c5('0x12')](_0x21bc6f)){if(!_[_0x43c5('0x12')](_0x3db6ba[_0x43c5('0x24')]['cc'])){_0x3db6ba['message']['cc']+=',';}_0x3db6ba['message']['cc']+=_0x21bc6f;}}if(!_[_0x43c5('0x17')](_0x3db6ba[_0x43c5('0x24')]['originTo'],_0x1df698['email'])&&!_[_0x43c5('0x17')](_0x3db6ba[_0x43c5('0x24')][_0x43c5('0x25')],_0x1df698[_0x43c5('0x5')])){_0x3db6ba[_0x43c5('0x24')]['bcc']=_0x1df698['email'];}if(_0x32c5b6[_0x43c5('0x19')]&&_0x32c5b6[_0x43c5('0x19')]['length']){_0x3db6ba['message'][_0x43c5('0x26')]=_0x32c5b6[_0x43c5('0x19')][_0x43c5('0xe')];for(var _0x4ab43c=0x0,_0x223afe,_0x285fd9,_0xa0019b;_0x4ab43c<_0x32c5b6[_0x43c5('0x19')]['length'];_0x4ab43c+=0x1){if(_0x32c5b6[_0x43c5('0x19')][_0x4ab43c][_0x43c5('0x27')]===_0x43c5('0x28')){_0xa0019b=_0x32c5b6[_0x43c5('0x19')][_0x4ab43c][_0x43c5('0x1b')]||_0x43c5('0x29')+_0x4ab43c;_0x223afe=util[_0x43c5('0x2a')](_0x43c5('0x2b'),Date['now'](),_0xa0019b);_0x285fd9=path['join'](config[_0x43c5('0x2c')],'server/files/attachments/',_0x223afe);fs[_0x43c5('0x2d')](_0x285fd9,_0x32c5b6[_0x43c5('0x19')][_0x4ab43c][_0x43c5('0x2e')]);_0x3db6ba['message'][_0x43c5('0x19')][_0x43c5('0x1a')]({'name':_0xa0019b,'basename':_0x223afe,'type':_0x32c5b6['attachments'][_0x4ab43c][_0x43c5('0x2f')],'filepath':_0x285fd9});}}}if(_0x32c5b6['headerLines']&&_0x32c5b6['headerLines'][_0x43c5('0xe')]>0x0){var _0x2d98ff=[_0x43c5('0x30'),_0x43c5('0x31'),_0x43c5('0x32')];for(var _0xe5f598=0x0;_0xe5f598<_0x32c5b6['headerLines']['length'];_0xe5f598++){var _0xdc3d7a=_[_0x43c5('0xc')](_0x2d98ff,_0x32c5b6['headerLines'][_0xe5f598]['line']);if(_0xdc3d7a>=0x0){_0x3db6ba['isAutoreply']=!![];}}}return _0x3db6ba;}exports[_0x43c5('0x33')]=function(_0x1ca0b8,_0x530c2d,_0x1a564d){var _0x5005bf={'from':getAddress(_0x530c2d[_0x43c5('0x34')]),'firstName':getFirstName(_0x530c2d['from']),'lastName':getLastName(_0x530c2d[_0x43c5('0x34')]),'mapKey':_0x43c5('0x5'),'message':{'from':getMails(_0x1ca0b8['email'],_0x530c2d[_0x43c5('0x34')]),'to':_0x1ca0b8[_0x43c5('0x5')],'cc':'','subject':_0x530c2d[_0x43c5('0x35')]||'','messageId':_0x530c2d[_0x43c5('0x36')],'inReplyTo':_0x530c2d[_0x43c5('0x37')],'sentAt':moment(_0x530c2d[_0x43c5('0x38')])[_0x43c5('0x2a')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x530c2d[_0x43c5('0x14')]&&!_0x530c2d[_0x43c5('0x21')]){var _0x12d901=_[_0x43c5('0x39')](_0x530c2d['attachments'],{'contentType':_0x43c5('0x3a')});if(_0x12d901[_0x43c5('0xe')]){logger['info'](util[_0x43c5('0x2a')](_0x43c5('0x3b'),_0x530c2d[_0x43c5('0x36')]));tnef['parseBuffer'](_[_0x43c5('0x3c')](_0x12d901)[_0x43c5('0x2e')],function(_0x3c43b7,_0x1f1d13){if(_0x1f1d13){_0x530c2d[_0x43c5('0x14')]=_0x1f1d13[_0x43c5('0x3d')]||_0x43c5('0x3e');if(_0x1f1d13[_0x43c5('0x3f')]){for(var _0xec4d4=0x0;_0xec4d4<_0x1f1d13['Attachments']['length'];_0xec4d4++){var _0x4be29f=_0x1f1d13[_0x43c5('0x3f')][_0xec4d4];_0x5005bf[_0x43c5('0x24')][_0x43c5('0x19')][_0x43c5('0x1a')]({'filename':_0x4be29f[_0x43c5('0x40')],'content':Buffer['from'](_0x4be29f['Data'])});}}}_0x1a564d(parseEmail(_0x1ca0b8,_0x530c2d,_0x5005bf));});}else{_0x530c2d[_0x43c5('0x14')]=_0x43c5('0x3e');_0x1a564d(parseEmail(_0x1ca0b8,_0x530c2d,_0x5005bf));}}else{_0x1a564d(parseEmail(_0x1ca0b8,_0x530c2d,_0x5005bf));}};exports[_0x43c5('0x41')]=function(_0x5bd194,_0x498bb9){var _0x339d55=[_0x43c5('0x42')+(_0x498bb9||''),_0x43c5('0x43')+_0x5bd194,'',''];return Buffer[_0x43c5('0x34')](_0x339d55['join']('\ 1'),'utf-8')['toString'](_0x43c5('0x44'));};