34700b76a2d65ecce74a115f077d682e90778f14
[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 _0x5301=['node-tnef','../../../config/logger','email','../../../config/environment','head','value','address','anonymous','@xcally.com','name','substring','indexOf','split','length','slice','join','pop','isEmpty','generate','html','test','replace','attachments','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','includes','bcc','attach','attachment','filename','attachment-','format','%s-%s','now','root','server/files/attachments/','contentType','headerLines','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','parser','from','messageId','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','first','content','<p>Empty\x20message</p>','Attachments','push','Title','Data','generateXOAuth2Token','auth=Bearer\x20','utf-8','toString','lodash','moment','randomstring','util'];(function(_0x2e4b84,_0x19ad5a){var _0x3a0444=function(_0x2a86db){while(--_0x2a86db){_0x2e4b84['push'](_0x2e4b84['shift']());}};_0x3a0444(++_0x19ad5a);}(_0x5301,0x164));var _0x1530=function(_0x4b4202,_0x24abce){_0x4b4202=_0x4b4202-0x0;var _0x2e9d3d=_0x5301[_0x4b4202];return _0x2e9d3d;};'use strict';var _=require(_0x1530('0x0'));var moment=require(_0x1530('0x1'));var random=require(_0x1530('0x2'));var fs=require('fs');var path=require('path');var util=require(_0x1530('0x3'));var tnef=require(_0x1530('0x4'));var logger=require(_0x1530('0x5'))(_0x1530('0x6'));var config=require(_0x1530('0x7'));function getAddress(_0x3a26ea){var _0x1b79cd=_[_0x1530('0x8')](_0x3a26ea[_0x1530('0x9')]);return _0x1b79cd&&_0x1b79cd[_0x1530('0xa')]?_0x1b79cd['address']:_0x1530('0xb')+random['generate'](0x6)+_0x1530('0xc');}function getFirstName(_0x2c42d1){var _0x29e48d=_[_0x1530('0x8')](_0x2c42d1[_0x1530('0x9')]);if(_0x29e48d&&_0x29e48d[_0x1530('0xd')]){if(_0x29e48d[_0x1530('0xd')]==_0x29e48d['address']){return _0x29e48d['name'][_0x1530('0xe')](0x0,_0x29e48d[_0x1530('0xd')][_0x1530('0xf')]('@'));}var _0x2dac08=_0x29e48d[_0x1530('0xd')][_0x1530('0x10')](/\s+/);return _0x2dac08[_0x1530('0x11')]>0x1?_0x2dac08[_0x1530('0x12')](0x0,-0x1)[_0x1530('0x13')]('\x20'):_0x29e48d[_0x1530('0xd')];}return'Anonymous';}function getLastName(_0xfb111){var _0x1162ae=_[_0x1530('0x8')](_0xfb111[_0x1530('0x9')]);if(_0x1162ae&&_0x1162ae['name']){var _0x36cc04=_0x1162ae[_0x1530('0xd')][_0x1530('0x10')](/\s+/);return _0x36cc04[_0x1530('0x11')]>0x1?_0x36cc04[_0x1530('0x14')]():'';}return'';}function getMails(_0x4f15ea,_0x1c879c){var _0x468aad='';for(var _0x5f1f09=0x0;_0x5f1f09<_0x1c879c['value'][_0x1530('0x11')];_0x5f1f09+=0x1){if(_0x1c879c[_0x1530('0x9')][_0x5f1f09][_0x1530('0xa')]!==_0x4f15ea){if(!_[_0x1530('0x15')](_0x468aad)){_0x468aad+=',';}_0x468aad+=_0x1c879c[_0x1530('0x9')][_0x5f1f09][_0x1530('0xd')]||_0x1c879c['value'][_0x5f1f09][_0x1530('0xa')]||'';_0x468aad+='\x20<';_0x468aad+=_0x1c879c['value'][_0x5f1f09]['address']?_0x1c879c['value'][_0x5f1f09][_0x1530('0xa')]:_0x1530('0xb')+random[_0x1530('0x16')](0x6)+_0x1530('0xc');_0x468aad+='>';}}return _0x468aad;}function parseEmail(_0x347b14,_0x3907cf,_0x1621f1){if(_0x3907cf[_0x1530('0x17')]){var _0x3d5677=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x3d5677[_0x1530('0x18')](_0x3907cf['html'])){_0x3907cf[_0x1530('0x17')]=_0x3907cf[_0x1530('0x17')][_0x1530('0x19')](_0x3d5677,'');}if(_0x3907cf[_0x1530('0x17')]['includes']('<img')){var _0x5a8dc4=[];_0x3907cf[_0x1530('0x1a')]['forEach'](_0x4f8268=>{_0x5a8dc4['push'](_0x4f8268['filename']);});var _0x197f05=/<img.*? _SRC(.*?)[^>]+>/g;var _0x512fe3=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x428eb5=_0x3907cf[_0x1530('0x17')][_0x1530('0x19')](_0x512fe3,_0x1530('0x1b'));var _0x395c09=_0x428eb5[_0x1530('0x19')](_0x197f05,_0x1530('0x1c'));for(let _0x38a76f=0x0;_0x38a76f<_0x5a8dc4['length'];_0x38a76f++){var _0x3ddfc4=_0x395c09['replace']('_IMG',_0x1530('0x1d')+_0x5a8dc4[_0x38a76f]+_0x1530('0x1e'));_0x395c09=_0x3ddfc4;}_0x3907cf[_0x1530('0x17')]=_0x395c09;}_0x1621f1[_0x1530('0x1f')]=_0x3907cf[_0x1530('0x17')];}else{_0x1621f1['body']=_0x3907cf[_0x1530('0x20')];}if(_0x1621f1[_0x1530('0x1f')]){_0x1621f1[_0x1530('0x1f')]=_0x1621f1[_0x1530('0x1f')][_0x1530('0x19')](/<a\s+/gi,_0x1530('0x21'));}if(_0x3907cf['to']){_0x1621f1[_0x1530('0x22')][_0x1530('0x23')]=getMails(null,_0x3907cf['to']);var _0x47c3d5=getMails(_0x347b14['email'],_0x3907cf['to']);if(!_[_0x1530('0x15')](_0x47c3d5)){_0x1621f1[_0x1530('0x22')]['cc']+=_0x47c3d5;}}if(_0x3907cf['cc']){_0x1621f1[_0x1530('0x22')][_0x1530('0x24')]=getMails(null,_0x3907cf['cc']);var _0xca4b28=getMails(_0x347b14[_0x1530('0x6')],_0x3907cf['cc']);if(!_[_0x1530('0x15')](_0xca4b28)){if(!_[_0x1530('0x15')](_0x1621f1['message']['cc'])){_0x1621f1[_0x1530('0x22')]['cc']+=',';}_0x1621f1['message']['cc']+=_0xca4b28;}}if(!_[_0x1530('0x25')](_0x1621f1[_0x1530('0x22')][_0x1530('0x23')],_0x347b14['email'])&&!_[_0x1530('0x25')](_0x1621f1[_0x1530('0x22')]['originCc'],_0x347b14[_0x1530('0x6')])){_0x1621f1[_0x1530('0x22')][_0x1530('0x26')]=_0x347b14['email'];}if(_0x3907cf[_0x1530('0x1a')]&&_0x3907cf[_0x1530('0x1a')][_0x1530('0x11')]){_0x1621f1[_0x1530('0x22')][_0x1530('0x27')]=_0x3907cf[_0x1530('0x1a')][_0x1530('0x11')];for(var _0x2d1395=0x0,_0x58d67a,_0x4b6eb6,_0x5dc6f7;_0x2d1395<_0x3907cf['attachments'][_0x1530('0x11')];_0x2d1395+=0x1){if(_0x3907cf['attachments'][_0x2d1395]['type']===_0x1530('0x28')){_0x5dc6f7=_0x3907cf[_0x1530('0x1a')][_0x2d1395][_0x1530('0x29')]||_0x1530('0x2a')+_0x2d1395;_0x58d67a=util[_0x1530('0x2b')](_0x1530('0x2c'),Date[_0x1530('0x2d')](),_0x5dc6f7);_0x4b6eb6=path[_0x1530('0x13')](config[_0x1530('0x2e')],_0x1530('0x2f'),_0x58d67a);fs['writeFileSync'](_0x4b6eb6,_0x3907cf[_0x1530('0x1a')][_0x2d1395]['content']);_0x1621f1[_0x1530('0x22')][_0x1530('0x1a')]['push']({'name':_0x5dc6f7,'basename':_0x58d67a,'type':_0x3907cf[_0x1530('0x1a')][_0x2d1395][_0x1530('0x30')],'filepath':_0x4b6eb6});}}}if(_0x3907cf[_0x1530('0x31')]&&_0x3907cf[_0x1530('0x31')][_0x1530('0x11')]>0x0){var _0x161fd9=['Auto-Submitted:\x20auto-replied',_0x1530('0x32'),_0x1530('0x33')];for(var _0x34d478=0x0;_0x34d478<_0x3907cf[_0x1530('0x31')][_0x1530('0x11')];_0x34d478++){var _0x50de0a=_[_0x1530('0xf')](_0x161fd9,_0x3907cf[_0x1530('0x31')][_0x34d478][_0x1530('0x34')]);if(_0x50de0a>=0x0){_0x1621f1['isAutoreply']=!![];}}}return _0x1621f1;}exports[_0x1530('0x35')]=function(_0x105681,_0x4934a5,_0x5be258){var _0x410b54={'from':getAddress(_0x4934a5[_0x1530('0x36')]),'firstName':getFirstName(_0x4934a5[_0x1530('0x36')]),'lastName':getLastName(_0x4934a5[_0x1530('0x36')]),'mapKey':_0x1530('0x6'),'message':{'from':getMails(_0x105681[_0x1530('0x6')],_0x4934a5[_0x1530('0x36')]),'to':_0x105681['email'],'cc':'','subject':_0x4934a5['subject']||'','messageId':_0x4934a5[_0x1530('0x37')],'inReplyTo':_0x4934a5['inReplyTo'],'sentAt':moment(_0x4934a5['date'])['format'](_0x1530('0x38')),'attach':![],'attachments':[]}};if(!_0x4934a5['html']&&!_0x4934a5[_0x1530('0x20')]){var _0x381884=_[_0x1530('0x39')](_0x4934a5[_0x1530('0x1a')],{'contentType':_0x1530('0x3a')});if(_0x381884['length']){logger[_0x1530('0x3b')](util[_0x1530('0x2b')](_0x1530('0x3c'),_0x4934a5[_0x1530('0x37')]));tnef['parseBuffer'](_[_0x1530('0x3d')](_0x381884)[_0x1530('0x3e')],function(_0x5454b9,_0x414c1c){if(_0x414c1c){_0x4934a5[_0x1530('0x17')]=_0x414c1c['BodyHTML']||_0x1530('0x3f');if(_0x414c1c[_0x1530('0x40')]){for(var _0x3aceed=0x0;_0x3aceed<_0x414c1c[_0x1530('0x40')][_0x1530('0x11')];_0x3aceed++){var _0x355e06=_0x414c1c[_0x1530('0x40')][_0x3aceed];_0x410b54[_0x1530('0x22')]['attachments'][_0x1530('0x41')]({'filename':_0x355e06[_0x1530('0x42')],'content':Buffer['from'](_0x355e06[_0x1530('0x43')])});}}}_0x5be258(parseEmail(_0x105681,_0x4934a5,_0x410b54));});}else{_0x4934a5[_0x1530('0x17')]=_0x1530('0x3f');_0x5be258(parseEmail(_0x105681,_0x4934a5,_0x410b54));}}else{_0x5be258(parseEmail(_0x105681,_0x4934a5,_0x410b54));}};exports[_0x1530('0x44')]=function(_0x4bc176,_0x28885c){var _0x482c8b=['user='+(_0x28885c||''),_0x1530('0x45')+_0x4bc176,'',''];return Buffer['from'](_0x482c8b[_0x1530('0x13')]('\ 1'),_0x1530('0x46'))[_0x1530('0x47')]('base64');};