Built motion from commit e6806ed6.|2.6.0
[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 _0x4076=['originCc','bcc','attach','type','attachment','format','%s-%s','now','root','contentType','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','headerLines','indexOf','line','isAutoreply','parser','from','messageId','inReplyTo','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','content','BodyHTML','<p>Empty\x20message</p>','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','moment','randomstring','path','node-tnef','../../../config/logger','email','../../../config/environment','value','address','generate','@xcally.com','name','substring','slice','join','Anonymous','head','split','pop','isEmpty','html','test','includes','<img','attachments','forEach','push','filename','_SRC','_IMG','length','replace','body','textAsHtml','message','originTo'];(function(_0x57db49,_0x288094){var _0xd0636f=function(_0x227787){while(--_0x227787){_0x57db49['push'](_0x57db49['shift']());}};_0xd0636f(++_0x288094);}(_0x4076,0x1da));var _0x6407=function(_0xd28e02,_0x3c30f2){_0xd28e02=_0xd28e02-0x0;var _0xbe5e5e=_0x4076[_0xd28e02];return _0xbe5e5e;};'use strict';var _=require(_0x6407('0x0'));var moment=require(_0x6407('0x1'));var random=require(_0x6407('0x2'));var fs=require('fs');var path=require(_0x6407('0x3'));var util=require('util');var tnef=require(_0x6407('0x4'));var logger=require(_0x6407('0x5'))(_0x6407('0x6'));var config=require(_0x6407('0x7'));function getAddress(_0x5acb91){var _0x4aae09=_['head'](_0x5acb91[_0x6407('0x8')]);return _0x4aae09&&_0x4aae09['address']?_0x4aae09[_0x6407('0x9')]:'anonymous'+random[_0x6407('0xa')](0x6)+_0x6407('0xb');}function getFirstName(_0x4be36c){var _0x22f218=_['head'](_0x4be36c['value']);if(_0x22f218&&_0x22f218[_0x6407('0xc')]){if(_0x22f218[_0x6407('0xc')]==_0x22f218[_0x6407('0x9')]){return _0x22f218[_0x6407('0xc')][_0x6407('0xd')](0x0,_0x22f218[_0x6407('0xc')]['indexOf']('@'));}var _0x14ec1a=_0x22f218[_0x6407('0xc')]['split'](/\s+/);return _0x14ec1a['length']>0x1?_0x14ec1a[_0x6407('0xe')](0x0,-0x1)[_0x6407('0xf')]('\x20'):_0x22f218['name'];}return _0x6407('0x10');}function getLastName(_0x40d107){var _0x10b6f4=_[_0x6407('0x11')](_0x40d107[_0x6407('0x8')]);if(_0x10b6f4&&_0x10b6f4[_0x6407('0xc')]){var _0x15014d=_0x10b6f4[_0x6407('0xc')][_0x6407('0x12')](/\s+/);return _0x15014d['length']>0x1?_0x15014d[_0x6407('0x13')]():'';}return'';}function getMails(_0xd7a38e,_0x2d503e){var _0x1e5bd6='';for(var _0x22c8d4=0x0;_0x22c8d4<_0x2d503e['value']['length'];_0x22c8d4+=0x1){if(_0x2d503e[_0x6407('0x8')][_0x22c8d4][_0x6407('0x9')]!==_0xd7a38e){if(!_[_0x6407('0x14')](_0x1e5bd6)){_0x1e5bd6+=',';}_0x1e5bd6+=_0x2d503e[_0x6407('0x8')][_0x22c8d4][_0x6407('0xc')]||_0x2d503e[_0x6407('0x8')][_0x22c8d4]['address']||'';_0x1e5bd6+='\x20<';_0x1e5bd6+=_0x2d503e['value'][_0x22c8d4]['address']?_0x2d503e['value'][_0x22c8d4][_0x6407('0x9')]:'anonymous'+random[_0x6407('0xa')](0x6)+_0x6407('0xb');_0x1e5bd6+='>';}}return _0x1e5bd6;}function parseEmail(_0x272567,_0x18ec11,_0x224050){if(_0x18ec11[_0x6407('0x15')]){var _0x544d9f=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x544d9f[_0x6407('0x16')](_0x18ec11[_0x6407('0x15')])){_0x18ec11[_0x6407('0x15')]=_0x18ec11[_0x6407('0x15')]['replace'](_0x544d9f,'');}if(_0x18ec11[_0x6407('0x15')][_0x6407('0x17')](_0x6407('0x18'))){var _0x28deae=[];_0x18ec11[_0x6407('0x19')][_0x6407('0x1a')](_0x12f3e9=>{_0x28deae[_0x6407('0x1b')](_0x12f3e9[_0x6407('0x1c')]);});var _0x3d9d29=/<img.*? _SRC(.*?)[^>]+>/g;var _0x1ccc66=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x32b91e=_0x18ec11[_0x6407('0x15')]['replace'](_0x1ccc66,_0x6407('0x1d'));var _0x49d9f5=_0x32b91e['replace'](_0x3d9d29,_0x6407('0x1e'));for(let _0x1d53be=0x0;_0x1d53be<_0x28deae[_0x6407('0x1f')];_0x1d53be++){var _0x53fba9=_0x49d9f5[_0x6407('0x20')](_0x6407('0x1e'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x28deae[_0x1d53be]+'\x20]</span>');_0x49d9f5=_0x53fba9;}_0x18ec11[_0x6407('0x15')]=_0x49d9f5;}_0x224050['body']=_0x18ec11[_0x6407('0x15')];}else{_0x224050[_0x6407('0x21')]=_0x18ec11[_0x6407('0x22')];}if(_0x224050[_0x6407('0x21')]){_0x224050['body']=_0x224050[_0x6407('0x21')]['replace'](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x18ec11['to']){_0x224050[_0x6407('0x23')][_0x6407('0x24')]=getMails(null,_0x18ec11['to']);var _0x20f08b=getMails(_0x272567['email'],_0x18ec11['to']);if(!_[_0x6407('0x14')](_0x20f08b)){_0x224050[_0x6407('0x23')]['cc']+=_0x20f08b;}}if(_0x18ec11['cc']){_0x224050['message'][_0x6407('0x25')]=getMails(null,_0x18ec11['cc']);var _0xc8a4f=getMails(_0x272567[_0x6407('0x6')],_0x18ec11['cc']);if(!_[_0x6407('0x14')](_0xc8a4f)){if(!_['isEmpty'](_0x224050[_0x6407('0x23')]['cc'])){_0x224050[_0x6407('0x23')]['cc']+=',';}_0x224050[_0x6407('0x23')]['cc']+=_0xc8a4f;}}if(!_[_0x6407('0x17')](_0x224050['message'][_0x6407('0x24')],_0x272567[_0x6407('0x6')])&&!_[_0x6407('0x17')](_0x224050[_0x6407('0x23')][_0x6407('0x25')],_0x272567[_0x6407('0x6')])){_0x224050[_0x6407('0x23')][_0x6407('0x26')]=_0x272567[_0x6407('0x6')];}if(_0x18ec11[_0x6407('0x19')]&&_0x18ec11['attachments'][_0x6407('0x1f')]){_0x224050[_0x6407('0x23')][_0x6407('0x27')]=_0x18ec11[_0x6407('0x19')][_0x6407('0x1f')];for(var _0x19e723=0x0,_0x501ae7,_0x4beab2,_0x2409fa;_0x19e723<_0x18ec11[_0x6407('0x19')][_0x6407('0x1f')];_0x19e723+=0x1){if(_0x18ec11[_0x6407('0x19')][_0x19e723][_0x6407('0x28')]===_0x6407('0x29')){_0x2409fa=_0x18ec11[_0x6407('0x19')][_0x19e723][_0x6407('0x1c')]||'attachment-'+_0x19e723;_0x501ae7=util[_0x6407('0x2a')](_0x6407('0x2b'),Date[_0x6407('0x2c')](),_0x2409fa);_0x4beab2=path[_0x6407('0xf')](config[_0x6407('0x2d')],'server/files/attachments/',_0x501ae7);fs['writeFileSync'](_0x4beab2,_0x18ec11[_0x6407('0x19')][_0x19e723]['content']);_0x224050['message'][_0x6407('0x19')][_0x6407('0x1b')]({'name':_0x2409fa,'basename':_0x501ae7,'type':_0x18ec11[_0x6407('0x19')][_0x19e723][_0x6407('0x2e')],'filepath':_0x4beab2});}}}if(_0x18ec11['headerLines']&&_0x18ec11['headerLines'][_0x6407('0x1f')]>0x0){var _0x361b4a=[_0x6407('0x2f'),_0x6407('0x30'),_0x6407('0x31')];for(var _0x37b3a9=0x0;_0x37b3a9<_0x18ec11[_0x6407('0x32')]['length'];_0x37b3a9++){var _0x5a3c77=_[_0x6407('0x33')](_0x361b4a,_0x18ec11[_0x6407('0x32')][_0x37b3a9][_0x6407('0x34')]);if(_0x5a3c77>=0x0){_0x224050[_0x6407('0x35')]=!![];}}}return _0x224050;}exports[_0x6407('0x36')]=function(_0xd08f7d,_0x1c9eb0,_0x3a3021){var _0x2dc619={'from':getAddress(_0x1c9eb0['from']),'firstName':getFirstName(_0x1c9eb0[_0x6407('0x37')]),'lastName':getLastName(_0x1c9eb0[_0x6407('0x37')]),'mapKey':'email','message':{'from':getMails(_0xd08f7d[_0x6407('0x6')],_0x1c9eb0[_0x6407('0x37')]),'to':_0xd08f7d[_0x6407('0x6')],'cc':'','subject':_0x1c9eb0['subject']||'','messageId':_0x1c9eb0[_0x6407('0x38')],'inReplyTo':_0x1c9eb0[_0x6407('0x39')],'sentAt':moment(_0x1c9eb0['date'])[_0x6407('0x2a')](_0x6407('0x3a')),'attach':![],'attachments':[]}};if(!_0x1c9eb0[_0x6407('0x15')]&&!_0x1c9eb0[_0x6407('0x22')]){var _0x53a636=_[_0x6407('0x3b')](_0x1c9eb0[_0x6407('0x19')],{'contentType':_0x6407('0x3c')});if(_0x53a636['length']){logger[_0x6407('0x3d')](util['format'](_0x6407('0x3e'),_0x1c9eb0[_0x6407('0x38')]));tnef[_0x6407('0x3f')](_['first'](_0x53a636)[_0x6407('0x40')],function(_0x547591,_0xdbea6f){if(_0xdbea6f){_0x1c9eb0[_0x6407('0x15')]=_0xdbea6f[_0x6407('0x41')]||_0x6407('0x42');if(_0xdbea6f['Attachments']){for(var _0x1fc894=0x0;_0x1fc894<_0xdbea6f['Attachments']['length'];_0x1fc894++){var _0x5cb212=_0xdbea6f['Attachments'][_0x1fc894];_0x2dc619['message'][_0x6407('0x19')][_0x6407('0x1b')]({'filename':_0x5cb212['Title'],'content':Buffer[_0x6407('0x37')](_0x5cb212['Data'])});}}}_0x3a3021(parseEmail(_0xd08f7d,_0x1c9eb0,_0x2dc619));});}else{_0x1c9eb0[_0x6407('0x15')]=_0x6407('0x42');_0x3a3021(parseEmail(_0xd08f7d,_0x1c9eb0,_0x2dc619));}}else{_0x3a3021(parseEmail(_0xd08f7d,_0x1c9eb0,_0x2dc619));}};exports[_0x6407('0x43')]=function(_0x2888eb,_0xe7b707){var _0x548ba3=[_0x6407('0x44')+(_0xe7b707||''),_0x6407('0x45')+_0x2888eb,'',''];return Buffer[_0x6407('0x37')](_0x548ba3[_0x6407('0xf')]('\ 1'),_0x6407('0x46'))[_0x6407('0x47')](_0x6407('0x48'));};