488ba8009f12f945d2d3d36d2d94e368ee6add22
[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 _0x9c28=['path','util','../../../config/logger','email','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name','substring','split','length','slice','Anonymous','pop','isEmpty','html','replace','includes','<img','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','bcc','attachments','attach','attachment','attachment-','format','%s-%s','now','root','content','contentType','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','headerLines','indexOf','isAutoreply','parser','from','subject','messageId','inReplyTo','date','textAsHtml','filter','application/ms-tnef','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','first','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','join','utf-8','toString','base64','moment','randomstring'];(function(_0x265e15,_0x14ad15){var _0x1517cc=function(_0x15d186){while(--_0x15d186){_0x265e15['push'](_0x265e15['shift']());}};_0x1517cc(++_0x14ad15);}(_0x9c28,0x96));var _0x89c2=function(_0x3b7fdd,_0x22a807){_0x3b7fdd=_0x3b7fdd-0x0;var _0x1c7c60=_0x9c28[_0x3b7fdd];return _0x1c7c60;};'use strict';var _=require('lodash');var moment=require(_0x89c2('0x0'));var random=require(_0x89c2('0x1'));var fs=require('fs');var path=require(_0x89c2('0x2'));var util=require(_0x89c2('0x3'));var tnef=require('node-tnef');var logger=require(_0x89c2('0x4'))(_0x89c2('0x5'));var config=require(_0x89c2('0x6'));function getAddress(_0x367557){var _0x4c35cf=_[_0x89c2('0x7')](_0x367557[_0x89c2('0x8')]);return _0x4c35cf&&_0x4c35cf[_0x89c2('0x9')]?_0x4c35cf[_0x89c2('0x9')]:_0x89c2('0xa')+random[_0x89c2('0xb')](0x6)+_0x89c2('0xc');}function getFirstName(_0x2c5824){var _0x122281=_['head'](_0x2c5824[_0x89c2('0x8')]);if(_0x122281&&_0x122281[_0x89c2('0xd')]){if(_0x122281[_0x89c2('0xd')]==_0x122281[_0x89c2('0x9')]){return _0x122281[_0x89c2('0xd')][_0x89c2('0xe')](0x0,_0x122281[_0x89c2('0xd')]['indexOf']('@'));}var _0x4a73d2=_0x122281[_0x89c2('0xd')][_0x89c2('0xf')](/\s+/);return _0x4a73d2[_0x89c2('0x10')]>0x1?_0x4a73d2[_0x89c2('0x11')](0x0,-0x1)['join']('\x20'):_0x122281[_0x89c2('0xd')];}return _0x89c2('0x12');}function getLastName(_0x8f646){var _0x430caa=_[_0x89c2('0x7')](_0x8f646[_0x89c2('0x8')]);if(_0x430caa&&_0x430caa[_0x89c2('0xd')]){var _0x1c349c=_0x430caa[_0x89c2('0xd')][_0x89c2('0xf')](/\s+/);return _0x1c349c[_0x89c2('0x10')]>0x1?_0x1c349c[_0x89c2('0x13')]():'';}return'';}function getMails(_0x1aca8a,_0x2d79c){var _0x1e5166='';for(var _0x4d7d8f=0x0;_0x4d7d8f<_0x2d79c['value'][_0x89c2('0x10')];_0x4d7d8f+=0x1){if(_0x2d79c[_0x89c2('0x8')][_0x4d7d8f][_0x89c2('0x9')]!==_0x1aca8a){if(!_[_0x89c2('0x14')](_0x1e5166)){_0x1e5166+=',';}_0x1e5166+=_0x2d79c[_0x89c2('0x8')][_0x4d7d8f][_0x89c2('0xd')]||_0x2d79c[_0x89c2('0x8')][_0x4d7d8f][_0x89c2('0x9')]||'';_0x1e5166+='\x20<';_0x1e5166+=_0x2d79c[_0x89c2('0x8')][_0x4d7d8f]['address']?_0x2d79c[_0x89c2('0x8')][_0x4d7d8f]['address']:_0x89c2('0xa')+random['generate'](0x6)+'@xcally.com';_0x1e5166+='>';}}return _0x1e5166;}function parseEmail(_0x660988,_0x16ff00,_0x1b2399){if(_0x16ff00[_0x89c2('0x15')]){var _0x717a9f=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x717a9f['test'](_0x16ff00[_0x89c2('0x15')])){_0x16ff00['html']=_0x16ff00[_0x89c2('0x15')][_0x89c2('0x16')](_0x717a9f,'');}if(_0x16ff00[_0x89c2('0x15')][_0x89c2('0x17')](_0x89c2('0x18'))){var _0x1d9ece=[];_0x16ff00['attachments'][_0x89c2('0x19')](_0x42aede=>{_0x1d9ece[_0x89c2('0x1a')](_0x42aede[_0x89c2('0x1b')]);});var _0x174f1e=/<img.*? _SRC(.*?)[^>]+>/g;var _0x401a1c=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x570514=_0x16ff00[_0x89c2('0x15')][_0x89c2('0x16')](_0x401a1c,_0x89c2('0x1c'));var _0x2a0baf=_0x570514[_0x89c2('0x16')](_0x174f1e,_0x89c2('0x1d'));for(let _0x23cde6=0x0;_0x23cde6<_0x1d9ece[_0x89c2('0x10')];_0x23cde6++){var _0x1bab28=_0x2a0baf[_0x89c2('0x16')](_0x89c2('0x1d'),_0x89c2('0x1e')+_0x1d9ece[_0x23cde6]+_0x89c2('0x1f'));_0x2a0baf=_0x1bab28;}_0x16ff00[_0x89c2('0x15')]=_0x2a0baf;}_0x1b2399[_0x89c2('0x20')]=_0x16ff00[_0x89c2('0x15')];}else{_0x1b2399[_0x89c2('0x20')]=_0x16ff00['textAsHtml'];}if(_0x1b2399['body']){_0x1b2399[_0x89c2('0x20')]=_0x1b2399[_0x89c2('0x20')][_0x89c2('0x16')](/<a\s+/gi,_0x89c2('0x21'));}if(_0x16ff00['to']){_0x1b2399[_0x89c2('0x22')][_0x89c2('0x23')]=getMails(null,_0x16ff00['to']);var _0x25bce9=getMails(_0x660988[_0x89c2('0x5')],_0x16ff00['to']);if(!_[_0x89c2('0x14')](_0x25bce9)){_0x1b2399[_0x89c2('0x22')]['cc']+=_0x25bce9;}}if(_0x16ff00['cc']){_0x1b2399['message']['originCc']=getMails(null,_0x16ff00['cc']);var _0x32bf6f=getMails(_0x660988[_0x89c2('0x5')],_0x16ff00['cc']);if(!_[_0x89c2('0x14')](_0x32bf6f)){if(!_[_0x89c2('0x14')](_0x1b2399[_0x89c2('0x22')]['cc'])){_0x1b2399['message']['cc']+=',';}_0x1b2399[_0x89c2('0x22')]['cc']+=_0x32bf6f;}}if(!_['includes'](_0x1b2399[_0x89c2('0x22')][_0x89c2('0x23')],_0x660988[_0x89c2('0x5')])&&!_[_0x89c2('0x17')](_0x1b2399[_0x89c2('0x22')][_0x89c2('0x24')],_0x660988[_0x89c2('0x5')])){_0x1b2399[_0x89c2('0x22')][_0x89c2('0x25')]=_0x660988[_0x89c2('0x5')];}if(_0x16ff00[_0x89c2('0x26')]&&_0x16ff00['attachments']['length']){_0x1b2399[_0x89c2('0x22')][_0x89c2('0x27')]=_0x16ff00[_0x89c2('0x26')]['length'];for(var _0x30dc15=0x0,_0x2a0e69,_0x4c6744,_0x82cb78;_0x30dc15<_0x16ff00[_0x89c2('0x26')][_0x89c2('0x10')];_0x30dc15+=0x1){if(_0x16ff00[_0x89c2('0x26')][_0x30dc15]['type']===_0x89c2('0x28')){_0x82cb78=_0x16ff00[_0x89c2('0x26')][_0x30dc15]['filename']||_0x89c2('0x29')+_0x30dc15;_0x2a0e69=util[_0x89c2('0x2a')](_0x89c2('0x2b'),Date[_0x89c2('0x2c')](),_0x82cb78);_0x4c6744=path['join'](config[_0x89c2('0x2d')],'server/files/attachments/',_0x2a0e69);fs['writeFileSync'](_0x4c6744,_0x16ff00['attachments'][_0x30dc15][_0x89c2('0x2e')]);_0x1b2399[_0x89c2('0x22')][_0x89c2('0x26')][_0x89c2('0x1a')]({'name':_0x82cb78,'basename':_0x2a0e69,'type':_0x16ff00[_0x89c2('0x26')][_0x30dc15][_0x89c2('0x2f')],'filepath':_0x4c6744});}}}if(_0x16ff00['headerLines']&&_0x16ff00['headerLines'][_0x89c2('0x10')]>0x0){var _0xe4f7f8=[_0x89c2('0x30'),_0x89c2('0x31'),'Precedence:\x20auto_reply'];for(var _0x249315=0x0;_0x249315<_0x16ff00[_0x89c2('0x32')][_0x89c2('0x10')];_0x249315++){var _0x38952f=_[_0x89c2('0x33')](_0xe4f7f8,_0x16ff00['headerLines'][_0x249315]['line']);if(_0x38952f>=0x0){_0x1b2399[_0x89c2('0x34')]=!![];}}}return _0x1b2399;}exports[_0x89c2('0x35')]=function(_0x2338de,_0x5bbcd0,_0x4a0efb){var _0x18924e={'from':getAddress(_0x5bbcd0[_0x89c2('0x36')]),'firstName':getFirstName(_0x5bbcd0[_0x89c2('0x36')]),'lastName':getLastName(_0x5bbcd0['from']),'mapKey':_0x89c2('0x5'),'message':{'from':getMails(_0x2338de[_0x89c2('0x5')],_0x5bbcd0[_0x89c2('0x36')]),'to':_0x2338de[_0x89c2('0x5')],'cc':'','subject':_0x5bbcd0[_0x89c2('0x37')]||'','messageId':_0x5bbcd0[_0x89c2('0x38')],'inReplyTo':_0x5bbcd0[_0x89c2('0x39')],'sentAt':moment(_0x5bbcd0[_0x89c2('0x3a')])[_0x89c2('0x2a')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x5bbcd0[_0x89c2('0x15')]&&!_0x5bbcd0[_0x89c2('0x3b')]){var _0x1c15bb=_[_0x89c2('0x3c')](_0x5bbcd0['attachments'],{'contentType':_0x89c2('0x3d')});if(_0x1c15bb['length']){logger['info'](util[_0x89c2('0x2a')](_0x89c2('0x3e'),_0x5bbcd0[_0x89c2('0x38')]));tnef[_0x89c2('0x3f')](_[_0x89c2('0x40')](_0x1c15bb)['content'],function(_0x3137e6,_0x2ddfce){if(_0x2ddfce){_0x5bbcd0[_0x89c2('0x15')]=_0x2ddfce['BodyHTML']||_0x89c2('0x41');if(_0x2ddfce['Attachments']){for(var _0x4e0777=0x0;_0x4e0777<_0x2ddfce[_0x89c2('0x42')]['length'];_0x4e0777++){var _0x3f3a81=_0x2ddfce[_0x89c2('0x42')][_0x4e0777];_0x18924e[_0x89c2('0x22')][_0x89c2('0x26')][_0x89c2('0x1a')]({'filename':_0x3f3a81[_0x89c2('0x43')],'content':Buffer[_0x89c2('0x36')](_0x3f3a81[_0x89c2('0x44')])});}}}_0x4a0efb(parseEmail(_0x2338de,_0x5bbcd0,_0x18924e));});}else{_0x5bbcd0[_0x89c2('0x15')]='<p>Empty\x20message</p>';_0x4a0efb(parseEmail(_0x2338de,_0x5bbcd0,_0x18924e));}}else{_0x4a0efb(parseEmail(_0x2338de,_0x5bbcd0,_0x18924e));}};exports[_0x89c2('0x45')]=function(_0x8610db,_0x25705f){var _0x595034=[_0x89c2('0x46')+(_0x25705f||''),_0x89c2('0x47')+_0x8610db,'',''];return Buffer[_0x89c2('0x36')](_0x595034[_0x89c2('0x48')]('\ 1'),_0x89c2('0x49'))[_0x89c2('0x4a')](_0x89c2('0x4b'));};