c474e2b40892029a6dd91f15ce0e38c274ee919a
[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 _0x23fd=['headerLines','Auto-Submitted:\x20auto-replied','Precedence:\x20auto_reply','line','isAutoreply','parser','from','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','<p>Empty\x20message</p>','Attachments','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','lodash','moment','randomstring','path','util','node-tnef','email','../../../config/environment','value','address','anonymous','generate','name','substring','indexOf','split','length','slice','join','head','pop','isEmpty','test','html','replace','includes','<img','attachments','forEach','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','bcc','type','attachment','format','%s-%s','server/files/attachments/','writeFileSync','content','push','contentType'];(function(_0x55f8b4,_0x43f30d){var _0x2475f9=function(_0xdd6f4a){while(--_0xdd6f4a){_0x55f8b4['push'](_0x55f8b4['shift']());}};_0x2475f9(++_0x43f30d);}(_0x23fd,0x9a));var _0xd23f=function(_0x3a8077,_0x13fd8f){_0x3a8077=_0x3a8077-0x0;var _0x3301d8=_0x23fd[_0x3a8077];return _0x3301d8;};'use strict';var _=require(_0xd23f('0x0'));var moment=require(_0xd23f('0x1'));var random=require(_0xd23f('0x2'));var fs=require('fs');var path=require(_0xd23f('0x3'));var util=require(_0xd23f('0x4'));var tnef=require(_0xd23f('0x5'));var logger=require('../../../config/logger')(_0xd23f('0x6'));var config=require(_0xd23f('0x7'));function getAddress(_0x3cee39){var _0x35ed37=_['head'](_0x3cee39[_0xd23f('0x8')]);return _0x35ed37&&_0x35ed37[_0xd23f('0x9')]?_0x35ed37[_0xd23f('0x9')]:_0xd23f('0xa')+random[_0xd23f('0xb')](0x6)+'@xcally.com';}function getFirstName(_0x50dd0e){var _0x25b417=_['head'](_0x50dd0e['value']);if(_0x25b417&&_0x25b417[_0xd23f('0xc')]){if(_0x25b417[_0xd23f('0xc')]==_0x25b417[_0xd23f('0x9')]){return _0x25b417[_0xd23f('0xc')][_0xd23f('0xd')](0x0,_0x25b417[_0xd23f('0xc')][_0xd23f('0xe')]('@'));}var _0x11459c=_0x25b417[_0xd23f('0xc')][_0xd23f('0xf')](/\s+/);return _0x11459c[_0xd23f('0x10')]>0x1?_0x11459c[_0xd23f('0x11')](0x0,-0x1)[_0xd23f('0x12')]('\x20'):_0x25b417[_0xd23f('0xc')];}return'Anonymous';}function getLastName(_0x1620a7){var _0x47e56c=_[_0xd23f('0x13')](_0x1620a7[_0xd23f('0x8')]);if(_0x47e56c&&_0x47e56c['name']){var _0x34183b=_0x47e56c['name'][_0xd23f('0xf')](/\s+/);return _0x34183b[_0xd23f('0x10')]>0x1?_0x34183b[_0xd23f('0x14')]():'';}return'';}function getMails(_0x4cba73,_0x257a28){var _0x2ad969='';for(var _0x2c829f=0x0;_0x2c829f<_0x257a28['value'][_0xd23f('0x10')];_0x2c829f+=0x1){if(_0x257a28[_0xd23f('0x8')][_0x2c829f][_0xd23f('0x9')]!==_0x4cba73){if(!_[_0xd23f('0x15')](_0x2ad969)){_0x2ad969+=',';}_0x2ad969+=_0x257a28['value'][_0x2c829f][_0xd23f('0xc')]||_0x257a28['value'][_0x2c829f]['address']||'';_0x2ad969+='\x20<';_0x2ad969+=_0x257a28['value'][_0x2c829f][_0xd23f('0x9')]?_0x257a28['value'][_0x2c829f]['address']:'anonymous'+random['generate'](0x6)+'@xcally.com';_0x2ad969+='>';}}return _0x2ad969;}function parseEmail(_0x5da422,_0x14a077,_0x52e832){if(_0x14a077['html']){var _0x6b9105=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x6b9105[_0xd23f('0x16')](_0x14a077[_0xd23f('0x17')])){_0x14a077[_0xd23f('0x17')]=_0x14a077['html'][_0xd23f('0x18')](_0x6b9105,'');}if(_0x14a077[_0xd23f('0x17')][_0xd23f('0x19')](_0xd23f('0x1a'))){var _0x2f9b49=[];_0x14a077[_0xd23f('0x1b')][_0xd23f('0x1c')](_0x305079=>{_0x2f9b49['push'](_0x305079[_0xd23f('0x1d')]);});var _0x54ad7c=/<img.*? _SRC(.*?)[^>]+>/g;var _0x1c365b=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x580119=_0x14a077[_0xd23f('0x17')][_0xd23f('0x18')](_0x1c365b,_0xd23f('0x1e'));var _0x3f344a=_0x580119[_0xd23f('0x18')](_0x54ad7c,_0xd23f('0x1f'));for(let _0x23dad2=0x0;_0x23dad2<_0x2f9b49[_0xd23f('0x10')];_0x23dad2++){var _0x402fd8=_0x3f344a[_0xd23f('0x18')](_0xd23f('0x1f'),_0xd23f('0x20')+_0x2f9b49[_0x23dad2]+_0xd23f('0x21'));_0x3f344a=_0x402fd8;}_0x14a077[_0xd23f('0x17')]=_0x3f344a;}_0x52e832[_0xd23f('0x22')]=_0x14a077[_0xd23f('0x17')];}else{_0x52e832['body']=_0x14a077[_0xd23f('0x23')];}if(_0x52e832['body']){_0x52e832[_0xd23f('0x22')]=_0x52e832['body']['replace'](/<a\s+/gi,_0xd23f('0x24'));}if(_0x14a077['to']){_0x52e832[_0xd23f('0x25')][_0xd23f('0x26')]=getMails(null,_0x14a077['to']);var _0x49c8a7=getMails(_0x5da422[_0xd23f('0x6')],_0x14a077['to']);if(!_['isEmpty'](_0x49c8a7)){_0x52e832[_0xd23f('0x25')]['cc']+=_0x49c8a7;}}if(_0x14a077['cc']){_0x52e832['message'][_0xd23f('0x27')]=getMails(null,_0x14a077['cc']);var _0x446bbc=getMails(_0x5da422['email'],_0x14a077['cc']);if(!_[_0xd23f('0x15')](_0x446bbc)){if(!_[_0xd23f('0x15')](_0x52e832[_0xd23f('0x25')]['cc'])){_0x52e832[_0xd23f('0x25')]['cc']+=',';}_0x52e832[_0xd23f('0x25')]['cc']+=_0x446bbc;}}if(!_[_0xd23f('0x19')](_0x52e832['message'][_0xd23f('0x26')],_0x5da422[_0xd23f('0x6')])&&!_[_0xd23f('0x19')](_0x52e832[_0xd23f('0x25')][_0xd23f('0x27')],_0x5da422['email'])){_0x52e832['message'][_0xd23f('0x28')]=_0x5da422['email'];}if(_0x14a077[_0xd23f('0x1b')]&&_0x14a077[_0xd23f('0x1b')]['length']){_0x52e832[_0xd23f('0x25')]['attach']=_0x14a077[_0xd23f('0x1b')][_0xd23f('0x10')];for(var _0x129008=0x0,_0x44e2dd,_0x41e853,_0x5859b3;_0x129008<_0x14a077[_0xd23f('0x1b')]['length'];_0x129008+=0x1){if(_0x14a077[_0xd23f('0x1b')][_0x129008][_0xd23f('0x29')]===_0xd23f('0x2a')){_0x5859b3=_0x14a077['attachments'][_0x129008]['filename']||'attachment-'+_0x129008;_0x44e2dd=util[_0xd23f('0x2b')](_0xd23f('0x2c'),Date['now'](),_0x5859b3);_0x41e853=path[_0xd23f('0x12')](config['root'],_0xd23f('0x2d'),_0x44e2dd);fs[_0xd23f('0x2e')](_0x41e853,_0x14a077[_0xd23f('0x1b')][_0x129008][_0xd23f('0x2f')]);_0x52e832[_0xd23f('0x25')]['attachments'][_0xd23f('0x30')]({'name':_0x5859b3,'basename':_0x44e2dd,'type':_0x14a077[_0xd23f('0x1b')][_0x129008][_0xd23f('0x31')],'filepath':_0x41e853});}}}if(_0x14a077[_0xd23f('0x32')]&&_0x14a077[_0xd23f('0x32')][_0xd23f('0x10')]>0x0){var _0x53f52b=[_0xd23f('0x33'),'X-Auto-Response-Suppress:\x20All',_0xd23f('0x34')];for(var _0x3d7204=0x0;_0x3d7204<_0x14a077['headerLines'][_0xd23f('0x10')];_0x3d7204++){var _0xf57e05=_[_0xd23f('0xe')](_0x53f52b,_0x14a077[_0xd23f('0x32')][_0x3d7204][_0xd23f('0x35')]);if(_0xf57e05>=0x0){_0x52e832[_0xd23f('0x36')]=!![];}}}return _0x52e832;}exports[_0xd23f('0x37')]=function(_0x5f857a,_0x473445,_0x3f770c){var _0x1e78c6={'from':getAddress(_0x473445[_0xd23f('0x38')]),'firstName':getFirstName(_0x473445['from']),'lastName':getLastName(_0x473445['from']),'mapKey':_0xd23f('0x6'),'message':{'from':getMails(_0x5f857a[_0xd23f('0x6')],_0x473445['from']),'to':_0x5f857a[_0xd23f('0x6')],'cc':'','subject':_0x473445['subject']||'','messageId':_0x473445['messageId'],'inReplyTo':_0x473445['inReplyTo'],'sentAt':moment(_0x473445['date'])[_0xd23f('0x2b')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x473445[_0xd23f('0x17')]&&!_0x473445['textAsHtml']){var _0x5cac10=_['filter'](_0x473445[_0xd23f('0x1b')],{'contentType':_0xd23f('0x39')});if(_0x5cac10[_0xd23f('0x10')]){logger[_0xd23f('0x3a')](util['format'](_0xd23f('0x3b'),_0x473445['messageId']));tnef[_0xd23f('0x3c')](_['first'](_0x5cac10)['content'],function(_0x3be29e,_0x589ad4){if(_0x589ad4){_0x473445['html']=_0x589ad4['BodyHTML']||_0xd23f('0x3d');if(_0x589ad4[_0xd23f('0x3e')]){for(var _0x3c0ce9=0x0;_0x3c0ce9<_0x589ad4[_0xd23f('0x3e')][_0xd23f('0x10')];_0x3c0ce9++){var _0x30ba58=_0x589ad4[_0xd23f('0x3e')][_0x3c0ce9];_0x1e78c6[_0xd23f('0x25')][_0xd23f('0x1b')][_0xd23f('0x30')]({'filename':_0x30ba58['Title'],'content':Buffer[_0xd23f('0x38')](_0x30ba58['Data'])});}}}_0x3f770c(parseEmail(_0x5f857a,_0x473445,_0x1e78c6));});}else{_0x473445[_0xd23f('0x17')]=_0xd23f('0x3d');_0x3f770c(parseEmail(_0x5f857a,_0x473445,_0x1e78c6));}}else{_0x3f770c(parseEmail(_0x5f857a,_0x473445,_0x1e78c6));}};exports[_0xd23f('0x3f')]=function(_0x2586c7,_0x162549){var _0x381c24=[_0xd23f('0x40')+(_0x162549||''),_0xd23f('0x41')+_0x2586c7,'',''];return Buffer[_0xd23f('0x38')](_0x381c24['join']('\ 1'),_0xd23f('0x42'))[_0xd23f('0x43')]('base64');};