Built motion from commit ddca4d0d.|2.5.47
[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 _0x14cc=['inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','parseBuffer','<p>Empty\x20message</p>','Title','Data','getHost','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','moment','randomstring','path','util','node-tnef','email','../../../config/environment','head','value','address','generate','name','substring','indexOf','split','length','slice','join','pop','anonymous','@xcally.com','html','test','includes','<img','forEach','_SRC','replace','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','isEmpty','originCc','bcc','attachments','type','attachment','filename','format','%s-%s','now','root','server/files/attachments/','writeFileSync','content','push','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','parser','from','subject','messageId'];(function(_0x26cdb8,_0x19bada){var _0x34e540=function(_0x3a5d86){while(--_0x3a5d86){_0x26cdb8['push'](_0x26cdb8['shift']());}};_0x34e540(++_0x19bada);}(_0x14cc,0xb8));var _0xc14c=function(_0xa148b7,_0x2f3eb2){_0xa148b7=_0xa148b7-0x0;var _0x51efd3=_0x14cc[_0xa148b7];return _0x51efd3;};'use strict';var _=require('lodash');var moment=require(_0xc14c('0x0'));var random=require(_0xc14c('0x1'));var fs=require('fs');var path=require(_0xc14c('0x2'));var util=require(_0xc14c('0x3'));var tnef=require(_0xc14c('0x4'));var logger=require('../../../config/logger')(_0xc14c('0x5'));var config=require(_0xc14c('0x6'));function getAddress(_0x14efec){var _0x297e4e=_[_0xc14c('0x7')](_0x14efec[_0xc14c('0x8')]);return _0x297e4e&&_0x297e4e[_0xc14c('0x9')]?_0x297e4e[_0xc14c('0x9')]:'anonymous'+random[_0xc14c('0xa')](0x6)+'@xcally.com';}function getFirstName(_0x529e74){var _0x3f9bee=_['head'](_0x529e74[_0xc14c('0x8')]);if(_0x3f9bee&&_0x3f9bee[_0xc14c('0xb')]){if(_0x3f9bee[_0xc14c('0xb')]==_0x3f9bee[_0xc14c('0x9')]){return _0x3f9bee[_0xc14c('0xb')][_0xc14c('0xc')](0x0,_0x3f9bee[_0xc14c('0xb')][_0xc14c('0xd')]('@'));}var _0x2d1c6a=_0x3f9bee[_0xc14c('0xb')][_0xc14c('0xe')](/\s+/);return _0x2d1c6a[_0xc14c('0xf')]>0x1?_0x2d1c6a[_0xc14c('0x10')](0x0,-0x1)[_0xc14c('0x11')]('\x20'):_0x3f9bee[_0xc14c('0xb')];}return'Anonymous';}function getLastName(_0xe654b2){var _0x277b38=_[_0xc14c('0x7')](_0xe654b2[_0xc14c('0x8')]);if(_0x277b38&&_0x277b38['name']){var _0x7594c6=_0x277b38[_0xc14c('0xb')][_0xc14c('0xe')](/\s+/);return _0x7594c6[_0xc14c('0xf')]>0x1?_0x7594c6[_0xc14c('0x12')]():'';}return'';}function getMails(_0x1eb570,_0x440175){var _0xb492dc='';for(var _0x4beff9=0x0;_0x4beff9<_0x440175[_0xc14c('0x8')][_0xc14c('0xf')];_0x4beff9+=0x1){if(_0x440175[_0xc14c('0x8')][_0x4beff9][_0xc14c('0x9')]!==_0x1eb570){if(!_['isEmpty'](_0xb492dc)){_0xb492dc+=',';}_0xb492dc+=_0x440175[_0xc14c('0x8')][_0x4beff9][_0xc14c('0xb')]||_0x440175['value'][_0x4beff9][_0xc14c('0x9')]||'';_0xb492dc+='\x20<';_0xb492dc+=_0x440175[_0xc14c('0x8')][_0x4beff9]['address']?_0x440175[_0xc14c('0x8')][_0x4beff9]['address']:_0xc14c('0x13')+random[_0xc14c('0xa')](0x6)+_0xc14c('0x14');_0xb492dc+='>';}}return _0xb492dc;}function parseEmail(_0x46e427,_0x187769,_0x320173){if(_0x187769[_0xc14c('0x15')]){var _0xf0ff25=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0xf0ff25[_0xc14c('0x16')](_0x187769[_0xc14c('0x15')])){_0x187769[_0xc14c('0x15')]=_0x187769[_0xc14c('0x15')]['replace'](_0xf0ff25,'');}if(_0x187769[_0xc14c('0x15')][_0xc14c('0x17')](_0xc14c('0x18'))){var _0x3272b8=[];_0x187769['attachments'][_0xc14c('0x19')](_0x52b056=>{_0x3272b8['push'](_0x52b056['filename']);});var _0x281eac=/<img.*? _SRC(.*?)[^>]+>/g;var _0x2f4c78=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x515379=_0x187769['html']['replace'](_0x2f4c78,_0xc14c('0x1a'));var _0xbb9fb6=_0x515379[_0xc14c('0x1b')](_0x281eac,'_IMG');for(let _0xe128fc=0x0;_0xe128fc<_0x3272b8[_0xc14c('0xf')];_0xe128fc++){var _0x10f87b=_0xbb9fb6[_0xc14c('0x1b')](_0xc14c('0x1c'),_0xc14c('0x1d')+_0x3272b8[_0xe128fc]+_0xc14c('0x1e'));_0xbb9fb6=_0x10f87b;}_0x187769[_0xc14c('0x15')]=_0xbb9fb6;}_0x320173[_0xc14c('0x1f')]=_0x187769['html'];}else{_0x320173[_0xc14c('0x1f')]=_0x187769[_0xc14c('0x20')];}if(_0x320173[_0xc14c('0x1f')]){_0x320173[_0xc14c('0x1f')]=_0x320173[_0xc14c('0x1f')]['replace'](/<a\s+/gi,_0xc14c('0x21'));}if(_0x187769['to']){_0x320173[_0xc14c('0x22')][_0xc14c('0x23')]=getMails(null,_0x187769['to']);var _0x2b45cc=getMails(_0x46e427['email'],_0x187769['to']);if(!_[_0xc14c('0x24')](_0x2b45cc)){_0x320173['message']['cc']+=_0x2b45cc;}}if(_0x187769['cc']){_0x320173[_0xc14c('0x22')]['originCc']=getMails(null,_0x187769['cc']);var _0x59001c=getMails(_0x46e427['email'],_0x187769['cc']);if(!_[_0xc14c('0x24')](_0x59001c)){if(!_[_0xc14c('0x24')](_0x320173[_0xc14c('0x22')]['cc'])){_0x320173[_0xc14c('0x22')]['cc']+=',';}_0x320173['message']['cc']+=_0x59001c;}}if(!_['includes'](_0x320173[_0xc14c('0x22')][_0xc14c('0x23')],_0x46e427[_0xc14c('0x5')])&&!_[_0xc14c('0x17')](_0x320173['message'][_0xc14c('0x25')],_0x46e427['email'])){_0x320173[_0xc14c('0x22')][_0xc14c('0x26')]=_0x46e427[_0xc14c('0x5')];}if(_0x187769[_0xc14c('0x27')]&&_0x187769[_0xc14c('0x27')][_0xc14c('0xf')]){_0x320173['message']['attach']=_0x187769[_0xc14c('0x27')][_0xc14c('0xf')];for(var _0x6218a9=0x0,_0x1f3699,_0x4fe592,_0x57a7dd;_0x6218a9<_0x187769[_0xc14c('0x27')][_0xc14c('0xf')];_0x6218a9+=0x1){if(_0x187769[_0xc14c('0x27')][_0x6218a9][_0xc14c('0x28')]===_0xc14c('0x29')){_0x57a7dd=_0x187769['attachments'][_0x6218a9][_0xc14c('0x2a')]||'attachment-'+_0x6218a9;_0x1f3699=util[_0xc14c('0x2b')](_0xc14c('0x2c'),Date[_0xc14c('0x2d')](),_0x57a7dd);_0x4fe592=path[_0xc14c('0x11')](config[_0xc14c('0x2e')],_0xc14c('0x2f'),_0x1f3699);fs[_0xc14c('0x30')](_0x4fe592,_0x187769[_0xc14c('0x27')][_0x6218a9][_0xc14c('0x31')]);_0x320173[_0xc14c('0x22')][_0xc14c('0x27')][_0xc14c('0x32')]({'name':_0x57a7dd,'basename':_0x1f3699,'type':_0x187769[_0xc14c('0x27')][_0x6218a9][_0xc14c('0x33')],'filepath':_0x4fe592});}}}if(_0x187769['headerLines']&&_0x187769[_0xc14c('0x34')]['length']>0x0){var _0x4e6e22=[_0xc14c('0x35'),_0xc14c('0x36'),_0xc14c('0x37')];for(var _0x5ea44d=0x0;_0x5ea44d<_0x187769[_0xc14c('0x34')][_0xc14c('0xf')];_0x5ea44d++){var _0x9107d9=_[_0xc14c('0xd')](_0x4e6e22,_0x187769['headerLines'][_0x5ea44d][_0xc14c('0x38')]);if(_0x9107d9>=0x0){_0x320173[_0xc14c('0x39')]=!![];}}}return _0x320173;}exports[_0xc14c('0x3a')]=function(_0x2fe9f6,_0x349d3c,_0x144b3e){var _0x28fa97={'from':getAddress(_0x349d3c[_0xc14c('0x3b')]),'firstName':getFirstName(_0x349d3c[_0xc14c('0x3b')]),'lastName':getLastName(_0x349d3c[_0xc14c('0x3b')]),'mapKey':_0xc14c('0x5'),'message':{'from':getMails(_0x2fe9f6['email'],_0x349d3c[_0xc14c('0x3b')]),'to':_0x2fe9f6['email'],'cc':'','subject':_0x349d3c[_0xc14c('0x3c')]||'','messageId':_0x349d3c[_0xc14c('0x3d')],'inReplyTo':_0x349d3c[_0xc14c('0x3e')],'sentAt':moment(_0x349d3c[_0xc14c('0x3f')])[_0xc14c('0x2b')](_0xc14c('0x40')),'attach':![],'attachments':[]}};if(!_0x349d3c[_0xc14c('0x15')]&&!_0x349d3c[_0xc14c('0x20')]){var _0xd89270=_['filter'](_0x349d3c[_0xc14c('0x27')],{'contentType':_0xc14c('0x41')});if(_0xd89270[_0xc14c('0xf')]){logger['info'](util[_0xc14c('0x2b')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x349d3c[_0xc14c('0x3d')]));tnef[_0xc14c('0x42')](_['first'](_0xd89270)['content'],function(_0x13fbb5,_0x2788ae){if(_0x2788ae){_0x349d3c[_0xc14c('0x15')]=_0x2788ae['BodyHTML']||_0xc14c('0x43');if(_0x2788ae['Attachments']){for(var _0x2c4fd1=0x0;_0x2c4fd1<_0x2788ae['Attachments'][_0xc14c('0xf')];_0x2c4fd1++){var _0x31cdc5=_0x2788ae['Attachments'][_0x2c4fd1];_0x28fa97[_0xc14c('0x22')][_0xc14c('0x27')]['push']({'filename':_0x31cdc5[_0xc14c('0x44')],'content':Buffer[_0xc14c('0x3b')](_0x31cdc5[_0xc14c('0x45')])});}}}_0x144b3e(parseEmail(_0x2fe9f6,_0x349d3c,_0x28fa97));});}else{_0x349d3c[_0xc14c('0x15')]=_0xc14c('0x43');_0x144b3e(parseEmail(_0x2fe9f6,_0x349d3c,_0x28fa97));}}else{_0x144b3e(parseEmail(_0x2fe9f6,_0x349d3c,_0x28fa97));}};exports[_0xc14c('0x46')]=function(_0x5aa51f){switch(_0x5aa51f){case'gmail':return'imap.gmail.com';case'yahoo':return _0xc14c('0x47');case _0xc14c('0x48'):return _0xc14c('0x49');case _0xc14c('0x4a'):return _0xc14c('0x4b');}return'127.0.0.1';};exports[_0xc14c('0x4c')]=function(_0x236243,_0x302bf1){var _0x26ea0f=[_0xc14c('0x4d')+(_0x302bf1||''),_0xc14c('0x4e')+_0x236243,'',''];return Buffer[_0xc14c('0x3b')](_0x26ea0f[_0xc14c('0x11')]('\ 1'),_0xc14c('0x4f'))[_0xc14c('0x50')](_0xc14c('0x51'));};