af2076868221fb7b10801d5fefc600096a17cdac
[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 _0xb78e=['@xcally.com','head','name','split','length','slice','join','Anonymous','isEmpty','html','test','replace','includes','filename','_SRC','_IMG','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originCc','originTo','bcc','attachments','attach','attachment-','format','now','content','push','contentType','from','subject','messageId','inReplyTo','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','first','<p>Empty\x20message</p>','Attachments','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','path','util','node-tnef','../../../config/logger','email','../../../config/environment','value','address','anonymous','generate'];(function(_0xbb091,_0x3fe7ee){var _0x467a04=function(_0x3a978d){while(--_0x3a978d){_0xbb091['push'](_0xbb091['shift']());}};_0x467a04(++_0x3fe7ee);}(_0xb78e,0x1c9));var _0xeb78=function(_0x15a6a1,_0x4d795b){_0x15a6a1=_0x15a6a1-0x0;var _0x574bee=_0xb78e[_0x15a6a1];return _0x574bee;};'use strict';var _=require(_0xeb78('0x0'));var moment=require(_0xeb78('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0xeb78('0x2'));var util=require(_0xeb78('0x3'));var tnef=require(_0xeb78('0x4'));var logger=require(_0xeb78('0x5'))(_0xeb78('0x6'));var config=require(_0xeb78('0x7'));function getAddress(_0x13ef9d){var _0x1bdf83=_['head'](_0x13ef9d[_0xeb78('0x8')]);return _0x1bdf83&&_0x1bdf83[_0xeb78('0x9')]?_0x1bdf83[_0xeb78('0x9')]:_0xeb78('0xa')+random[_0xeb78('0xb')](0x6)+_0xeb78('0xc');}function getFirstName(_0x5259aa){var _0x573406=_[_0xeb78('0xd')](_0x5259aa[_0xeb78('0x8')]);if(_0x573406&&_0x573406[_0xeb78('0xe')]){var _0x46fbad=_0x573406[_0xeb78('0xe')][_0xeb78('0xf')](/\s+/);return _0x46fbad[_0xeb78('0x10')]?_0x46fbad[_0xeb78('0x11')](0x0,-0x1)[_0xeb78('0x12')]('\x20'):_0x573406['name'];}return _0xeb78('0x13');}function getLastName(_0x32a8d0){var _0x3725e3=_[_0xeb78('0xd')](_0x32a8d0[_0xeb78('0x8')]);if(_0x3725e3&&_0x3725e3[_0xeb78('0xe')]){var _0x1b6a87=_0x3725e3[_0xeb78('0xe')][_0xeb78('0xf')](/\s+/);return _0x1b6a87[_0xeb78('0x10')]>0x1?_0x1b6a87['pop']():'';}return'';}function getMails(_0x315914,_0x3e4d24){var _0x4e8b8c='';for(var _0x538485=0x0;_0x538485<_0x3e4d24['value'][_0xeb78('0x10')];_0x538485+=0x1){if(_0x3e4d24['value'][_0x538485][_0xeb78('0x9')]!==_0x315914){if(!_[_0xeb78('0x14')](_0x4e8b8c)){_0x4e8b8c+=',';}_0x4e8b8c+=_0x3e4d24['value'][_0x538485][_0xeb78('0xe')]||_0x3e4d24['value'][_0x538485][_0xeb78('0x9')]||'';_0x4e8b8c+='\x20<';_0x4e8b8c+=_0x3e4d24[_0xeb78('0x8')][_0x538485]['address']?_0x3e4d24[_0xeb78('0x8')][_0x538485][_0xeb78('0x9')]:_0xeb78('0xa')+random['generate'](0x6)+_0xeb78('0xc');_0x4e8b8c+='>';}}return _0x4e8b8c;}function parseEmail(_0x2c43c5,_0x4ab933,_0x48b106){if(_0x4ab933[_0xeb78('0x15')]){var _0x106c5d=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x106c5d[_0xeb78('0x16')](_0x4ab933[_0xeb78('0x15')])){_0x4ab933[_0xeb78('0x15')]=_0x4ab933[_0xeb78('0x15')][_0xeb78('0x17')](_0x106c5d,'');}if(_0x4ab933[_0xeb78('0x15')][_0xeb78('0x18')]('<img')){var _0x5d3cf8=[];_0x4ab933['attachments']['forEach'](_0x3c8e66=>{_0x5d3cf8['push'](_0x3c8e66[_0xeb78('0x19')]);});var _0x1fbf2f=/<img.*? _SRC(.*?)[^\>]+>/g;var _0x566336=/src=\"data:image\/([a-zA-Z]*);base64,([^\"]*)\"/g;var _0x777ca3=_0x4ab933['html'][_0xeb78('0x17')](_0x566336,_0xeb78('0x1a'));var _0x315f98=_0x777ca3[_0xeb78('0x17')](_0x1fbf2f,'_IMG');for(let _0x108052=0x0;_0x108052<_0x5d3cf8['length'];_0x108052++){var _0x31ad03=_0x315f98[_0xeb78('0x17')](_0xeb78('0x1b'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x5d3cf8[_0x108052]+_0xeb78('0x1c'));_0x315f98=_0x31ad03;}_0x4ab933[_0xeb78('0x15')]=_0x315f98;}_0x48b106[_0xeb78('0x1d')]=_0x4ab933[_0xeb78('0x15')];}else{_0x48b106[_0xeb78('0x1d')]=_0x4ab933[_0xeb78('0x1e')];}if(_0x48b106[_0xeb78('0x1d')]){_0x48b106[_0xeb78('0x1d')]=_0x48b106[_0xeb78('0x1d')][_0xeb78('0x17')](/<a\s+/gi,_0xeb78('0x1f'));}if(_0x4ab933['to']){_0x48b106['message']['originTo']=getMails(null,_0x4ab933['to']);var _0x4d12a3=getMails(_0x2c43c5[_0xeb78('0x6')],_0x4ab933['to']);if(!_[_0xeb78('0x14')](_0x4d12a3)){_0x48b106[_0xeb78('0x20')]['cc']+=_0x4d12a3;}}if(_0x4ab933['cc']){_0x48b106['message'][_0xeb78('0x21')]=getMails(null,_0x4ab933['cc']);var _0x1ecdfb=getMails(_0x2c43c5[_0xeb78('0x6')],_0x4ab933['cc']);if(!_[_0xeb78('0x14')](_0x1ecdfb)){if(!_[_0xeb78('0x14')](_0x48b106[_0xeb78('0x20')]['cc'])){_0x48b106[_0xeb78('0x20')]['cc']+=',';}_0x48b106[_0xeb78('0x20')]['cc']+=_0x1ecdfb;}}if(!_[_0xeb78('0x18')](_0x48b106['message'][_0xeb78('0x22')],_0x2c43c5['email'])&&!_[_0xeb78('0x18')](_0x48b106[_0xeb78('0x20')][_0xeb78('0x21')],_0x2c43c5[_0xeb78('0x6')])){_0x48b106[_0xeb78('0x20')][_0xeb78('0x23')]=_0x2c43c5['email'];}if(_0x4ab933['attachments']&&_0x4ab933[_0xeb78('0x24')][_0xeb78('0x10')]){_0x48b106[_0xeb78('0x20')][_0xeb78('0x25')]=_0x4ab933[_0xeb78('0x24')]['length'];for(var _0x128aba=0x0,_0x17a1ab,_0x286107,_0x29fcf6;_0x128aba<_0x4ab933[_0xeb78('0x24')][_0xeb78('0x10')];_0x128aba+=0x1){if(_0x4ab933['attachments'][_0x128aba]['type']==='attachment'){_0x29fcf6=_0x4ab933['attachments'][_0x128aba][_0xeb78('0x19')]||_0xeb78('0x26')+_0x128aba;_0x17a1ab=util[_0xeb78('0x27')]('%s-%s',Date[_0xeb78('0x28')](),_0x29fcf6);_0x286107=path[_0xeb78('0x12')](config['root'],'server/files/attachments/',_0x17a1ab);fs['writeFileSync'](_0x286107,_0x4ab933[_0xeb78('0x24')][_0x128aba][_0xeb78('0x29')]);_0x48b106[_0xeb78('0x20')]['attachments'][_0xeb78('0x2a')]({'name':_0x29fcf6,'basename':_0x17a1ab,'type':_0x4ab933[_0xeb78('0x24')][_0x128aba][_0xeb78('0x2b')],'filepath':_0x286107});}}}return _0x48b106;}exports['parser']=function(_0xf0f13c,_0x119848,_0x33c599){var _0x437590={'from':getAddress(_0x119848['from']),'firstName':getFirstName(_0x119848['from']),'lastName':getLastName(_0x119848[_0xeb78('0x2c')]),'mapKey':_0xeb78('0x6'),'message':{'from':getMails(_0xf0f13c[_0xeb78('0x6')],_0x119848[_0xeb78('0x2c')]),'to':_0xf0f13c[_0xeb78('0x6')],'cc':'','subject':_0x119848[_0xeb78('0x2d')]||'','messageId':_0x119848[_0xeb78('0x2e')],'inReplyTo':_0x119848[_0xeb78('0x2f')],'sentAt':moment(_0x119848[_0xeb78('0x30')])['format'](_0xeb78('0x31')),'attach':![],'attachments':[]}};if(!_0x119848[_0xeb78('0x15')]&&!_0x119848[_0xeb78('0x1e')]){var _0x4dfb67=_[_0xeb78('0x32')](_0x119848['attachments'],{'contentType':_0xeb78('0x33')});if(_0x4dfb67[_0xeb78('0x10')]){logger[_0xeb78('0x34')](util['format'](_0xeb78('0x35'),_0x119848[_0xeb78('0x2e')]));tnef[_0xeb78('0x36')](_[_0xeb78('0x37')](_0x4dfb67)[_0xeb78('0x29')],function(_0x598f0b,_0x24fb03){if(_0x24fb03){_0x119848[_0xeb78('0x15')]=_0x24fb03['BodyHTML']||_0xeb78('0x38');if(_0x24fb03[_0xeb78('0x39')]){for(var _0x1f2610=0x0;_0x1f2610<_0x24fb03['Attachments'][_0xeb78('0x10')];_0x1f2610++){var _0x42ac24=_0x24fb03[_0xeb78('0x39')][_0x1f2610];_0x437590[_0xeb78('0x20')][_0xeb78('0x24')][_0xeb78('0x2a')]({'filename':_0x42ac24['Title'],'content':new Buffer(_0x42ac24['Data'])});}}}_0x33c599(parseEmail(_0xf0f13c,_0x119848,_0x437590));});}else{_0x119848[_0xeb78('0x15')]=_0xeb78('0x38');_0x33c599(parseEmail(_0xf0f13c,_0x119848,_0x437590));}}else{_0x33c599(parseEmail(_0xf0f13c,_0x119848,_0x437590));}};exports['getHost']=function(_0x108f8b){switch(_0x108f8b){case _0xeb78('0x3a'):return _0xeb78('0x3b');case _0xeb78('0x3c'):return _0xeb78('0x3d');case _0xeb78('0x3e'):return _0xeb78('0x3f');case _0xeb78('0x40'):return _0xeb78('0x41');}return _0xeb78('0x42');};