Built motion from commit a679711e.|2.6.15
[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 _0x7c9b=['messageId','inReplyTo','textAsHtml','application/ms-tnef','info','first','content','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','auth=Bearer\x20','utf-8','base64','lodash','randomstring','path','util','node-tnef','../../../config/logger','../../../config/environment','head','value','address','generate','name','indexOf','split','length','slice','join','pop','isEmpty','html','test','replace','includes','<img','attachments','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','email','bcc','attach','type','format','%s-%s','now','root','server/files/attachments/','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','parser','from','subject'];(function(_0x378f57,_0x3ddccb){var _0x3e7e99=function(_0x160ac0){while(--_0x160ac0){_0x378f57['push'](_0x378f57['shift']());}};_0x3e7e99(++_0x3ddccb);}(_0x7c9b,0x1b3));var _0xb7c9=function(_0xc60c6c,_0x599e00){_0xc60c6c=_0xc60c6c-0x0;var _0x428806=_0x7c9b[_0xc60c6c];return _0x428806;};'use strict';var _=require(_0xb7c9('0x0'));var moment=require('moment');var random=require(_0xb7c9('0x1'));var fs=require('fs');var path=require(_0xb7c9('0x2'));var util=require(_0xb7c9('0x3'));var tnef=require(_0xb7c9('0x4'));var logger=require(_0xb7c9('0x5'))('email');var config=require(_0xb7c9('0x6'));function getAddress(_0x5026aa){var _0x24355c=_[_0xb7c9('0x7')](_0x5026aa[_0xb7c9('0x8')]);return _0x24355c&&_0x24355c[_0xb7c9('0x9')]?_0x24355c['address']:'anonymous'+random[_0xb7c9('0xa')](0x6)+'@xcally.com';}function getFirstName(_0x3e91e7){var _0x4c1ab9=_[_0xb7c9('0x7')](_0x3e91e7[_0xb7c9('0x8')]);if(_0x4c1ab9&&_0x4c1ab9['name']){if(_0x4c1ab9[_0xb7c9('0xb')]==_0x4c1ab9[_0xb7c9('0x9')]){return _0x4c1ab9['name']['substring'](0x0,_0x4c1ab9[_0xb7c9('0xb')][_0xb7c9('0xc')]('@'));}var _0xe33fa3=_0x4c1ab9['name'][_0xb7c9('0xd')](/\s+/);return _0xe33fa3[_0xb7c9('0xe')]>0x1?_0xe33fa3[_0xb7c9('0xf')](0x0,-0x1)[_0xb7c9('0x10')]('\x20'):_0x4c1ab9['name'];}return'Anonymous';}function getLastName(_0x3ba515){var _0x95bc01=_[_0xb7c9('0x7')](_0x3ba515[_0xb7c9('0x8')]);if(_0x95bc01&&_0x95bc01[_0xb7c9('0xb')]){var _0x3f57ee=_0x95bc01[_0xb7c9('0xb')][_0xb7c9('0xd')](/\s+/);return _0x3f57ee[_0xb7c9('0xe')]>0x1?_0x3f57ee[_0xb7c9('0x11')]():'';}return'';}function getMails(_0x587c62,_0x23c6bd){var _0x351484='';for(var _0x592038=0x0;_0x592038<_0x23c6bd[_0xb7c9('0x8')][_0xb7c9('0xe')];_0x592038+=0x1){if(_0x23c6bd[_0xb7c9('0x8')][_0x592038][_0xb7c9('0x9')]!==_0x587c62){if(!_[_0xb7c9('0x12')](_0x351484)){_0x351484+=',';}_0x351484+=_0x23c6bd[_0xb7c9('0x8')][_0x592038][_0xb7c9('0xb')]||_0x23c6bd[_0xb7c9('0x8')][_0x592038]['address']||'';_0x351484+='\x20<';_0x351484+=_0x23c6bd[_0xb7c9('0x8')][_0x592038]['address']?_0x23c6bd[_0xb7c9('0x8')][_0x592038][_0xb7c9('0x9')]:'anonymous'+random[_0xb7c9('0xa')](0x6)+'@xcally.com';_0x351484+='>';}}return _0x351484;}function parseEmail(_0x2582ca,_0x10d536,_0xba5752){if(_0x10d536[_0xb7c9('0x13')]){var _0x1b943d=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1b943d[_0xb7c9('0x14')](_0x10d536[_0xb7c9('0x13')])){_0x10d536[_0xb7c9('0x13')]=_0x10d536[_0xb7c9('0x13')][_0xb7c9('0x15')](_0x1b943d,'');}if(_0x10d536[_0xb7c9('0x13')][_0xb7c9('0x16')](_0xb7c9('0x17'))){var _0x2c4a1f=[];_0x10d536[_0xb7c9('0x18')][_0xb7c9('0x19')](_0x4e03d3=>{_0x2c4a1f[_0xb7c9('0x1a')](_0x4e03d3[_0xb7c9('0x1b')]);});var _0x135da7=/<img.*? _SRC(.*?)[^>]+>/g;var _0x1f6ea0=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x41468c=_0x10d536['html']['replace'](_0x1f6ea0,_0xb7c9('0x1c'));var _0x3d455c=_0x41468c[_0xb7c9('0x15')](_0x135da7,_0xb7c9('0x1d'));for(let _0x5cb22c=0x0;_0x5cb22c<_0x2c4a1f[_0xb7c9('0xe')];_0x5cb22c++){var _0x5d1c26=_0x3d455c[_0xb7c9('0x15')](_0xb7c9('0x1d'),_0xb7c9('0x1e')+_0x2c4a1f[_0x5cb22c]+_0xb7c9('0x1f'));_0x3d455c=_0x5d1c26;}_0x10d536[_0xb7c9('0x13')]=_0x3d455c;}_0xba5752[_0xb7c9('0x20')]=_0x10d536[_0xb7c9('0x13')];}else{_0xba5752['body']=_0x10d536['textAsHtml'];}if(_0xba5752[_0xb7c9('0x20')]){_0xba5752['body']=_0xba5752[_0xb7c9('0x20')]['replace'](/<a\s+/gi,_0xb7c9('0x21'));}if(_0x10d536['to']){_0xba5752[_0xb7c9('0x22')][_0xb7c9('0x23')]=getMails(null,_0x10d536['to']);var _0x570e0d=getMails(_0x2582ca['email'],_0x10d536['to']);if(!_[_0xb7c9('0x12')](_0x570e0d)){_0xba5752[_0xb7c9('0x22')]['cc']+=_0x570e0d;}}if(_0x10d536['cc']){_0xba5752[_0xb7c9('0x22')][_0xb7c9('0x24')]=getMails(null,_0x10d536['cc']);var _0x18f801=getMails(_0x2582ca[_0xb7c9('0x25')],_0x10d536['cc']);if(!_[_0xb7c9('0x12')](_0x18f801)){if(!_[_0xb7c9('0x12')](_0xba5752[_0xb7c9('0x22')]['cc'])){_0xba5752[_0xb7c9('0x22')]['cc']+=',';}_0xba5752[_0xb7c9('0x22')]['cc']+=_0x18f801;}}if(!_[_0xb7c9('0x16')](_0xba5752[_0xb7c9('0x22')][_0xb7c9('0x23')],_0x2582ca[_0xb7c9('0x25')])&&!_['includes'](_0xba5752['message'][_0xb7c9('0x24')],_0x2582ca[_0xb7c9('0x25')])){_0xba5752['message'][_0xb7c9('0x26')]=_0x2582ca[_0xb7c9('0x25')];}if(_0x10d536[_0xb7c9('0x18')]&&_0x10d536[_0xb7c9('0x18')][_0xb7c9('0xe')]){_0xba5752[_0xb7c9('0x22')][_0xb7c9('0x27')]=_0x10d536[_0xb7c9('0x18')][_0xb7c9('0xe')];for(var _0xbf57e6=0x0,_0x1dd739,_0x4289bf,_0x3213ee;_0xbf57e6<_0x10d536[_0xb7c9('0x18')][_0xb7c9('0xe')];_0xbf57e6+=0x1){if(_0x10d536[_0xb7c9('0x18')][_0xbf57e6][_0xb7c9('0x28')]==='attachment'){_0x3213ee=_0x10d536[_0xb7c9('0x18')][_0xbf57e6]['filename']||'attachment-'+_0xbf57e6;_0x1dd739=util[_0xb7c9('0x29')](_0xb7c9('0x2a'),Date[_0xb7c9('0x2b')](),_0x3213ee);_0x4289bf=path[_0xb7c9('0x10')](config[_0xb7c9('0x2c')],_0xb7c9('0x2d'),_0x1dd739);fs['writeFileSync'](_0x4289bf,_0x10d536[_0xb7c9('0x18')][_0xbf57e6]['content']);_0xba5752['message']['attachments'][_0xb7c9('0x1a')]({'name':_0x3213ee,'basename':_0x1dd739,'type':_0x10d536[_0xb7c9('0x18')][_0xbf57e6][_0xb7c9('0x2e')],'filepath':_0x4289bf});}}}if(_0x10d536[_0xb7c9('0x2f')]&&_0x10d536[_0xb7c9('0x2f')][_0xb7c9('0xe')]>0x0){var _0x2d3e86=[_0xb7c9('0x30'),_0xb7c9('0x31'),_0xb7c9('0x32')];for(var _0xb8c4f5=0x0;_0xb8c4f5<_0x10d536[_0xb7c9('0x2f')][_0xb7c9('0xe')];_0xb8c4f5++){var _0x28e4aa=_[_0xb7c9('0xc')](_0x2d3e86,_0x10d536[_0xb7c9('0x2f')][_0xb8c4f5][_0xb7c9('0x33')]);if(_0x28e4aa>=0x0){_0xba5752['isAutoreply']=!![];}}}return _0xba5752;}exports[_0xb7c9('0x34')]=function(_0x5d64c3,_0x558db1,_0x4f2229){var _0x40d2b5={'from':getAddress(_0x558db1[_0xb7c9('0x35')]),'firstName':getFirstName(_0x558db1['from']),'lastName':getLastName(_0x558db1[_0xb7c9('0x35')]),'mapKey':_0xb7c9('0x25'),'message':{'from':getMails(_0x5d64c3[_0xb7c9('0x25')],_0x558db1[_0xb7c9('0x35')]),'to':_0x5d64c3[_0xb7c9('0x25')],'cc':'','subject':_0x558db1[_0xb7c9('0x36')]||'','messageId':_0x558db1[_0xb7c9('0x37')],'inReplyTo':_0x558db1[_0xb7c9('0x38')],'sentAt':moment(_0x558db1['date'])['format']('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x558db1[_0xb7c9('0x13')]&&!_0x558db1[_0xb7c9('0x39')]){var _0x102eb8=_['filter'](_0x558db1[_0xb7c9('0x18')],{'contentType':_0xb7c9('0x3a')});if(_0x102eb8[_0xb7c9('0xe')]){logger[_0xb7c9('0x3b')](util[_0xb7c9('0x29')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x558db1[_0xb7c9('0x37')]));tnef['parseBuffer'](_[_0xb7c9('0x3c')](_0x102eb8)[_0xb7c9('0x3d')],function(_0x421279,_0x5f4f41){if(_0x5f4f41){_0x558db1[_0xb7c9('0x13')]=_0x5f4f41['BodyHTML']||_0xb7c9('0x3e');if(_0x5f4f41[_0xb7c9('0x3f')]){for(var _0x22d81f=0x0;_0x22d81f<_0x5f4f41['Attachments'][_0xb7c9('0xe')];_0x22d81f++){var _0x55deec=_0x5f4f41[_0xb7c9('0x3f')][_0x22d81f];_0x40d2b5[_0xb7c9('0x22')][_0xb7c9('0x18')][_0xb7c9('0x1a')]({'filename':_0x55deec[_0xb7c9('0x40')],'content':Buffer[_0xb7c9('0x35')](_0x55deec[_0xb7c9('0x41')])});}}}_0x4f2229(parseEmail(_0x5d64c3,_0x558db1,_0x40d2b5));});}else{_0x558db1[_0xb7c9('0x13')]=_0xb7c9('0x3e');_0x4f2229(parseEmail(_0x5d64c3,_0x558db1,_0x40d2b5));}}else{_0x4f2229(parseEmail(_0x5d64c3,_0x558db1,_0x40d2b5));}};exports[_0xb7c9('0x42')]=function(_0x55d0c4,_0x19dfb9){var _0x5037ce=['user='+(_0x19dfb9||''),_0xb7c9('0x43')+_0x55d0c4,'',''];return Buffer[_0xb7c9('0x35')](_0x5037ce['join']('\ 1'),_0xb7c9('0x44'))['toString'](_0xb7c9('0x45'));};