Built motion from commit 639a1a7f.|2.6.19
[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 _0xe155=['YYYY-MM-DD\x20HH:mm:ss','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','Data','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','moment','randomstring','path','node-tnef','../../../config/logger','email','../../../config/environment','head','address','@xcally.com','value','name','substring','indexOf','slice','Anonymous','split','length','isEmpty','anonymous','generate','test','html','replace','attachments','forEach','push','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','message','originTo','includes','attach','type','filename','format','%s-%s','now','join','root','server/files/attachments/','writeFileSync','content','headerLines','Precedence:\x20auto_reply','from','messageId','inReplyTo','date'];(function(_0xbe200f,_0x4b50eb){var _0x192597=function(_0x106cfd){while(--_0x106cfd){_0xbe200f['push'](_0xbe200f['shift']());}};_0x192597(++_0x4b50eb);}(_0xe155,0x1eb));var _0x5e15=function(_0xfecc5d,_0x550192){_0xfecc5d=_0xfecc5d-0x0;var _0x56cee2=_0xe155[_0xfecc5d];return _0x56cee2;};'use strict';var _=require(_0x5e15('0x0'));var moment=require(_0x5e15('0x1'));var random=require(_0x5e15('0x2'));var fs=require('fs');var path=require(_0x5e15('0x3'));var util=require('util');var tnef=require(_0x5e15('0x4'));var logger=require(_0x5e15('0x5'))(_0x5e15('0x6'));var config=require(_0x5e15('0x7'));function getAddress(_0x304a09){var _0x485899=_[_0x5e15('0x8')](_0x304a09['value']);return _0x485899&&_0x485899[_0x5e15('0x9')]?_0x485899[_0x5e15('0x9')]:'anonymous'+random['generate'](0x6)+_0x5e15('0xa');}function getFirstName(_0x399443){var _0x153e39=_[_0x5e15('0x8')](_0x399443[_0x5e15('0xb')]);if(_0x153e39&&_0x153e39[_0x5e15('0xc')]){if(_0x153e39[_0x5e15('0xc')]==_0x153e39[_0x5e15('0x9')]){return _0x153e39[_0x5e15('0xc')][_0x5e15('0xd')](0x0,_0x153e39[_0x5e15('0xc')][_0x5e15('0xe')]('@'));}var _0x2feab1=_0x153e39[_0x5e15('0xc')]['split'](/\s+/);return _0x2feab1['length']>0x1?_0x2feab1[_0x5e15('0xf')](0x0,-0x1)['join']('\x20'):_0x153e39[_0x5e15('0xc')];}return _0x5e15('0x10');}function getLastName(_0x348330){var _0x544e3f=_[_0x5e15('0x8')](_0x348330['value']);if(_0x544e3f&&_0x544e3f[_0x5e15('0xc')]){var _0xdec5cf=_0x544e3f[_0x5e15('0xc')][_0x5e15('0x11')](/\s+/);return _0xdec5cf[_0x5e15('0x12')]>0x1?_0xdec5cf['pop']():'';}return'';}function getMails(_0x4b8a5f,_0x2d0b99){var _0x164b88='';for(var _0x155704=0x0;_0x155704<_0x2d0b99[_0x5e15('0xb')][_0x5e15('0x12')];_0x155704+=0x1){if(_0x2d0b99['value'][_0x155704][_0x5e15('0x9')]!==_0x4b8a5f){if(!_[_0x5e15('0x13')](_0x164b88)){_0x164b88+=',';}_0x164b88+=_0x2d0b99['value'][_0x155704][_0x5e15('0xc')]||_0x2d0b99[_0x5e15('0xb')][_0x155704]['address']||'';_0x164b88+='\x20<';_0x164b88+=_0x2d0b99[_0x5e15('0xb')][_0x155704]['address']?_0x2d0b99[_0x5e15('0xb')][_0x155704][_0x5e15('0x9')]:_0x5e15('0x14')+random[_0x5e15('0x15')](0x6)+'@xcally.com';_0x164b88+='>';}}return _0x164b88;}function parseEmail(_0x50abed,_0x2f38ba,_0x1c96b4){if(_0x2f38ba['html']){var _0x590efd=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x590efd[_0x5e15('0x16')](_0x2f38ba[_0x5e15('0x17')])){_0x2f38ba[_0x5e15('0x17')]=_0x2f38ba['html'][_0x5e15('0x18')](_0x590efd,'');}if(_0x2f38ba[_0x5e15('0x17')]['includes']('<img')){var _0x5dad9a=[];_0x2f38ba[_0x5e15('0x19')][_0x5e15('0x1a')](_0x4b4301=>{_0x5dad9a[_0x5e15('0x1b')](_0x4b4301['filename']);});var _0x1b74ce=/<img.*? _SRC(.*?)[^>]+>/g;var _0x471cca=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0xb6b6ad=_0x2f38ba['html'][_0x5e15('0x18')](_0x471cca,'_SRC');var _0x259128=_0xb6b6ad[_0x5e15('0x18')](_0x1b74ce,'_IMG');for(let _0x56cb52=0x0;_0x56cb52<_0x5dad9a[_0x5e15('0x12')];_0x56cb52++){var _0x3e5b99=_0x259128[_0x5e15('0x18')](_0x5e15('0x1c'),_0x5e15('0x1d')+_0x5dad9a[_0x56cb52]+_0x5e15('0x1e'));_0x259128=_0x3e5b99;}_0x2f38ba[_0x5e15('0x17')]=_0x259128;}_0x1c96b4[_0x5e15('0x1f')]=_0x2f38ba[_0x5e15('0x17')];}else{_0x1c96b4[_0x5e15('0x1f')]=_0x2f38ba[_0x5e15('0x20')];}if(_0x1c96b4[_0x5e15('0x1f')]){_0x1c96b4[_0x5e15('0x1f')]=_0x1c96b4[_0x5e15('0x1f')][_0x5e15('0x18')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x2f38ba['to']){_0x1c96b4[_0x5e15('0x21')][_0x5e15('0x22')]=getMails(null,_0x2f38ba['to']);var _0xe5d26c=getMails(_0x50abed[_0x5e15('0x6')],_0x2f38ba['to']);if(!_[_0x5e15('0x13')](_0xe5d26c)){_0x1c96b4[_0x5e15('0x21')]['cc']+=_0xe5d26c;}}if(_0x2f38ba['cc']){_0x1c96b4['message']['originCc']=getMails(null,_0x2f38ba['cc']);var _0x40a637=getMails(_0x50abed[_0x5e15('0x6')],_0x2f38ba['cc']);if(!_[_0x5e15('0x13')](_0x40a637)){if(!_[_0x5e15('0x13')](_0x1c96b4[_0x5e15('0x21')]['cc'])){_0x1c96b4[_0x5e15('0x21')]['cc']+=',';}_0x1c96b4[_0x5e15('0x21')]['cc']+=_0x40a637;}}if(!_[_0x5e15('0x23')](_0x1c96b4['message'][_0x5e15('0x22')],_0x50abed[_0x5e15('0x6')])&&!_[_0x5e15('0x23')](_0x1c96b4[_0x5e15('0x21')]['originCc'],_0x50abed[_0x5e15('0x6')])){_0x1c96b4['message']['bcc']=_0x50abed[_0x5e15('0x6')];}if(_0x2f38ba[_0x5e15('0x19')]&&_0x2f38ba[_0x5e15('0x19')][_0x5e15('0x12')]){_0x1c96b4['message'][_0x5e15('0x24')]=_0x2f38ba['attachments'][_0x5e15('0x12')];for(var _0x3cd731=0x0,_0x5ea7da,_0x15b92c,_0x6990ca;_0x3cd731<_0x2f38ba[_0x5e15('0x19')]['length'];_0x3cd731+=0x1){if(_0x2f38ba[_0x5e15('0x19')][_0x3cd731][_0x5e15('0x25')]==='attachment'){_0x6990ca=_0x2f38ba['attachments'][_0x3cd731][_0x5e15('0x26')]||'attachment-'+_0x3cd731;_0x5ea7da=util[_0x5e15('0x27')](_0x5e15('0x28'),Date[_0x5e15('0x29')](),_0x6990ca);_0x15b92c=path[_0x5e15('0x2a')](config[_0x5e15('0x2b')],_0x5e15('0x2c'),_0x5ea7da);fs[_0x5e15('0x2d')](_0x15b92c,_0x2f38ba[_0x5e15('0x19')][_0x3cd731][_0x5e15('0x2e')]);_0x1c96b4['message']['attachments'][_0x5e15('0x1b')]({'name':_0x6990ca,'basename':_0x5ea7da,'type':_0x2f38ba[_0x5e15('0x19')][_0x3cd731]['contentType'],'filepath':_0x15b92c});}}}if(_0x2f38ba[_0x5e15('0x2f')]&&_0x2f38ba['headerLines'][_0x5e15('0x12')]>0x0){var _0x1bbe88=['Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All',_0x5e15('0x30')];for(var _0x296942=0x0;_0x296942<_0x2f38ba[_0x5e15('0x2f')][_0x5e15('0x12')];_0x296942++){var _0x503674=_['indexOf'](_0x1bbe88,_0x2f38ba[_0x5e15('0x2f')][_0x296942]['line']);if(_0x503674>=0x0){_0x1c96b4['isAutoreply']=!![];}}}return _0x1c96b4;}exports['parser']=function(_0x34421e,_0x58eb8d,_0xd7527c){var _0x26e8c6={'from':getAddress(_0x58eb8d[_0x5e15('0x31')]),'firstName':getFirstName(_0x58eb8d['from']),'lastName':getLastName(_0x58eb8d[_0x5e15('0x31')]),'mapKey':_0x5e15('0x6'),'message':{'from':getMails(_0x34421e[_0x5e15('0x6')],_0x58eb8d[_0x5e15('0x31')]),'to':_0x34421e['email'],'cc':'','subject':_0x58eb8d['subject']||'','messageId':_0x58eb8d[_0x5e15('0x32')],'inReplyTo':_0x58eb8d[_0x5e15('0x33')],'sentAt':moment(_0x58eb8d[_0x5e15('0x34')])[_0x5e15('0x27')](_0x5e15('0x35')),'attach':![],'attachments':[]}};if(!_0x58eb8d[_0x5e15('0x17')]&&!_0x58eb8d['textAsHtml']){var _0x56e906=_['filter'](_0x58eb8d[_0x5e15('0x19')],{'contentType':_0x5e15('0x36')});if(_0x56e906[_0x5e15('0x12')]){logger['info'](util[_0x5e15('0x27')](_0x5e15('0x37'),_0x58eb8d['messageId']));tnef['parseBuffer'](_[_0x5e15('0x38')](_0x56e906)[_0x5e15('0x2e')],function(_0x15bf0a,_0x36e197){if(_0x36e197){_0x58eb8d[_0x5e15('0x17')]=_0x36e197[_0x5e15('0x39')]||_0x5e15('0x3a');if(_0x36e197[_0x5e15('0x3b')]){for(var _0x1d11d6=0x0;_0x1d11d6<_0x36e197[_0x5e15('0x3b')][_0x5e15('0x12')];_0x1d11d6++){var _0x285b19=_0x36e197[_0x5e15('0x3b')][_0x1d11d6];_0x26e8c6[_0x5e15('0x21')][_0x5e15('0x19')][_0x5e15('0x1b')]({'filename':_0x285b19[_0x5e15('0x3c')],'content':Buffer[_0x5e15('0x31')](_0x285b19[_0x5e15('0x3d')])});}}}_0xd7527c(parseEmail(_0x34421e,_0x58eb8d,_0x26e8c6));});}else{_0x58eb8d[_0x5e15('0x17')]=_0x5e15('0x3a');_0xd7527c(parseEmail(_0x34421e,_0x58eb8d,_0x26e8c6));}}else{_0xd7527c(parseEmail(_0x34421e,_0x58eb8d,_0x26e8c6));}};exports[_0x5e15('0x3e')]=function(_0x4c00a8,_0x502dda){var _0x177bda=[_0x5e15('0x3f')+(_0x502dda||''),_0x5e15('0x40')+_0x4c00a8,'',''];return Buffer[_0x5e15('0x31')](_0x177bda[_0x5e15('0x2a')]('\ 1'),_0x5e15('0x41'))[_0x5e15('0x42')](_0x5e15('0x43'));};