e69de424b2dc79f8868f0c41e9cf5ef093c4bb0b
[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 _0xdf69=['first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','moment','path','node-tnef','../../../config/logger','value','address','anonymous','head','name','substring','slice','Anonymous','split','length','pop','isEmpty','generate','@xcally.com','html','replace','includes','<img','attachments','forEach','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','email','attach','type','filename','attachment-','format','%s-%s','now','join','root','server/files/attachments/','writeFileSync','content','push','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','indexOf','isAutoreply','parser','from','messageId','date','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system'];(function(_0x33f04b,_0x4b517a){var _0xdfcb1d=function(_0x282f9c){while(--_0x282f9c){_0x33f04b['push'](_0x33f04b['shift']());}};_0xdfcb1d(++_0x4b517a);}(_0xdf69,0x130));var _0x9df6=function(_0x486af2,_0x1e4819){_0x486af2=_0x486af2-0x0;var _0x2680a1=_0xdf69[_0x486af2];return _0x2680a1;};'use strict';var _=require(_0x9df6('0x0'));var moment=require(_0x9df6('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0x9df6('0x2'));var util=require('util');var tnef=require(_0x9df6('0x3'));var logger=require(_0x9df6('0x4'))('email');var config=require('../../../config/environment');function getAddress(_0xf73d67){var _0x475377=_['head'](_0xf73d67[_0x9df6('0x5')]);return _0x475377&&_0x475377['address']?_0x475377[_0x9df6('0x6')]:_0x9df6('0x7')+random['generate'](0x6)+'@xcally.com';}function getFirstName(_0x318dd3){var _0x4f251f=_[_0x9df6('0x8')](_0x318dd3['value']);if(_0x4f251f&&_0x4f251f[_0x9df6('0x9')]){if(_0x4f251f[_0x9df6('0x9')]==_0x4f251f[_0x9df6('0x6')]){return _0x4f251f['name'][_0x9df6('0xa')](0x0,_0x4f251f[_0x9df6('0x9')]['indexOf']('@'));}var _0x5c7ddc=_0x4f251f[_0x9df6('0x9')]['split'](/\s+/);return _0x5c7ddc['length']>0x1?_0x5c7ddc[_0x9df6('0xb')](0x0,-0x1)['join']('\x20'):_0x4f251f[_0x9df6('0x9')];}return _0x9df6('0xc');}function getLastName(_0x5541f4){var _0x41b575=_[_0x9df6('0x8')](_0x5541f4[_0x9df6('0x5')]);if(_0x41b575&&_0x41b575['name']){var _0x5dece8=_0x41b575['name'][_0x9df6('0xd')](/\s+/);return _0x5dece8[_0x9df6('0xe')]>0x1?_0x5dece8[_0x9df6('0xf')]():'';}return'';}function getMails(_0x34ad54,_0x239796){var _0x329029='';for(var _0x18b483=0x0;_0x18b483<_0x239796[_0x9df6('0x5')][_0x9df6('0xe')];_0x18b483+=0x1){if(_0x239796[_0x9df6('0x5')][_0x18b483]['address']!==_0x34ad54){if(!_[_0x9df6('0x10')](_0x329029)){_0x329029+=',';}_0x329029+=_0x239796[_0x9df6('0x5')][_0x18b483][_0x9df6('0x9')]||_0x239796[_0x9df6('0x5')][_0x18b483][_0x9df6('0x6')]||'';_0x329029+='\x20<';_0x329029+=_0x239796['value'][_0x18b483][_0x9df6('0x6')]?_0x239796[_0x9df6('0x5')][_0x18b483][_0x9df6('0x6')]:_0x9df6('0x7')+random[_0x9df6('0x11')](0x6)+_0x9df6('0x12');_0x329029+='>';}}return _0x329029;}function parseEmail(_0x2f8f02,_0x24210e,_0x5db215){if(_0x24210e[_0x9df6('0x13')]){var _0x4fd6be=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x4fd6be['test'](_0x24210e[_0x9df6('0x13')])){_0x24210e[_0x9df6('0x13')]=_0x24210e[_0x9df6('0x13')][_0x9df6('0x14')](_0x4fd6be,'');}if(_0x24210e[_0x9df6('0x13')][_0x9df6('0x15')](_0x9df6('0x16'))){var _0x5ae4ef=[];_0x24210e[_0x9df6('0x17')][_0x9df6('0x18')](_0x5d674b=>{_0x5ae4ef['push'](_0x5d674b['filename']);});var _0x36f234=/<img.*? _SRC(.*?)[^>]+>/g;var _0x3271e9=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x5118d8=_0x24210e[_0x9df6('0x13')][_0x9df6('0x14')](_0x3271e9,'_SRC');var _0x1b84df=_0x5118d8['replace'](_0x36f234,_0x9df6('0x19'));for(let _0x29c741=0x0;_0x29c741<_0x5ae4ef[_0x9df6('0xe')];_0x29c741++){var _0x583dfc=_0x1b84df[_0x9df6('0x14')](_0x9df6('0x19'),_0x9df6('0x1a')+_0x5ae4ef[_0x29c741]+'\x20]</span>');_0x1b84df=_0x583dfc;}_0x24210e[_0x9df6('0x13')]=_0x1b84df;}_0x5db215[_0x9df6('0x1b')]=_0x24210e['html'];}else{_0x5db215[_0x9df6('0x1b')]=_0x24210e[_0x9df6('0x1c')];}if(_0x5db215[_0x9df6('0x1b')]){_0x5db215['body']=_0x5db215[_0x9df6('0x1b')][_0x9df6('0x14')](/<a\s+/gi,_0x9df6('0x1d'));}if(_0x24210e['to']){_0x5db215[_0x9df6('0x1e')][_0x9df6('0x1f')]=getMails(null,_0x24210e['to']);var _0x333ad5=getMails(_0x2f8f02['email'],_0x24210e['to']);if(!_[_0x9df6('0x10')](_0x333ad5)){_0x5db215['message']['cc']+=_0x333ad5;}}if(_0x24210e['cc']){_0x5db215['message'][_0x9df6('0x20')]=getMails(null,_0x24210e['cc']);var _0xe8e8f7=getMails(_0x2f8f02['email'],_0x24210e['cc']);if(!_['isEmpty'](_0xe8e8f7)){if(!_['isEmpty'](_0x5db215[_0x9df6('0x1e')]['cc'])){_0x5db215[_0x9df6('0x1e')]['cc']+=',';}_0x5db215[_0x9df6('0x1e')]['cc']+=_0xe8e8f7;}}if(!_[_0x9df6('0x15')](_0x5db215[_0x9df6('0x1e')][_0x9df6('0x1f')],_0x2f8f02[_0x9df6('0x21')])&&!_[_0x9df6('0x15')](_0x5db215['message'][_0x9df6('0x20')],_0x2f8f02[_0x9df6('0x21')])){_0x5db215[_0x9df6('0x1e')]['bcc']=_0x2f8f02['email'];}if(_0x24210e[_0x9df6('0x17')]&&_0x24210e[_0x9df6('0x17')][_0x9df6('0xe')]){_0x5db215['message'][_0x9df6('0x22')]=_0x24210e['attachments'][_0x9df6('0xe')];for(var _0x35d81d=0x0,_0x49d3fd,_0x24fbd4,_0x3c0141;_0x35d81d<_0x24210e[_0x9df6('0x17')][_0x9df6('0xe')];_0x35d81d+=0x1){if(_0x24210e[_0x9df6('0x17')][_0x35d81d][_0x9df6('0x23')]==='attachment'){_0x3c0141=_0x24210e['attachments'][_0x35d81d][_0x9df6('0x24')]||_0x9df6('0x25')+_0x35d81d;_0x49d3fd=util[_0x9df6('0x26')](_0x9df6('0x27'),Date[_0x9df6('0x28')](),_0x3c0141);_0x24fbd4=path[_0x9df6('0x29')](config[_0x9df6('0x2a')],_0x9df6('0x2b'),_0x49d3fd);fs[_0x9df6('0x2c')](_0x24fbd4,_0x24210e[_0x9df6('0x17')][_0x35d81d][_0x9df6('0x2d')]);_0x5db215[_0x9df6('0x1e')]['attachments'][_0x9df6('0x2e')]({'name':_0x3c0141,'basename':_0x49d3fd,'type':_0x24210e['attachments'][_0x35d81d][_0x9df6('0x2f')],'filepath':_0x24fbd4});}}}if(_0x24210e[_0x9df6('0x30')]&&_0x24210e[_0x9df6('0x30')][_0x9df6('0xe')]>0x0){var _0x5969f9=[_0x9df6('0x31'),_0x9df6('0x32'),'Precedence:\x20auto_reply'];for(var _0x4278b4=0x0;_0x4278b4<_0x24210e[_0x9df6('0x30')][_0x9df6('0xe')];_0x4278b4++){var _0x132233=_[_0x9df6('0x33')](_0x5969f9,_0x24210e[_0x9df6('0x30')][_0x4278b4]['line']);if(_0x132233>=0x0){_0x5db215[_0x9df6('0x34')]=!![];}}}return _0x5db215;}exports[_0x9df6('0x35')]=function(_0x251f6f,_0x1aa206,_0x54f8f7){var _0x51ff92={'from':getAddress(_0x1aa206[_0x9df6('0x36')]),'firstName':getFirstName(_0x1aa206[_0x9df6('0x36')]),'lastName':getLastName(_0x1aa206[_0x9df6('0x36')]),'mapKey':_0x9df6('0x21'),'message':{'from':getMails(_0x251f6f[_0x9df6('0x21')],_0x1aa206[_0x9df6('0x36')]),'to':_0x251f6f[_0x9df6('0x21')],'cc':'','subject':_0x1aa206['subject']||'','messageId':_0x1aa206[_0x9df6('0x37')],'inReplyTo':_0x1aa206['inReplyTo'],'sentAt':moment(_0x1aa206[_0x9df6('0x38')])[_0x9df6('0x26')](_0x9df6('0x39')),'attach':![],'attachments':[]}};if(!_0x1aa206[_0x9df6('0x13')]&&!_0x1aa206['textAsHtml']){var _0x2cc4dd=_['filter'](_0x1aa206['attachments'],{'contentType':_0x9df6('0x3a')});if(_0x2cc4dd[_0x9df6('0xe')]){logger[_0x9df6('0x3b')](util[_0x9df6('0x26')](_0x9df6('0x3c'),_0x1aa206[_0x9df6('0x37')]));tnef['parseBuffer'](_[_0x9df6('0x3d')](_0x2cc4dd)['content'],function(_0x5359bf,_0x4345da){if(_0x4345da){_0x1aa206['html']=_0x4345da[_0x9df6('0x3e')]||_0x9df6('0x3f');if(_0x4345da[_0x9df6('0x40')]){for(var _0x388930=0x0;_0x388930<_0x4345da['Attachments']['length'];_0x388930++){var _0x3409fe=_0x4345da['Attachments'][_0x388930];_0x51ff92[_0x9df6('0x1e')][_0x9df6('0x17')][_0x9df6('0x2e')]({'filename':_0x3409fe[_0x9df6('0x41')],'content':Buffer[_0x9df6('0x36')](_0x3409fe[_0x9df6('0x42')])});}}}_0x54f8f7(parseEmail(_0x251f6f,_0x1aa206,_0x51ff92));});}else{_0x1aa206[_0x9df6('0x13')]=_0x9df6('0x3f');_0x54f8f7(parseEmail(_0x251f6f,_0x1aa206,_0x51ff92));}}else{_0x54f8f7(parseEmail(_0x251f6f,_0x1aa206,_0x51ff92));}};exports[_0x9df6('0x43')]=function(_0x4e5746,_0x41a721){var _0x561d0d=[_0x9df6('0x44')+(_0x41a721||''),_0x9df6('0x45')+_0x4e5746,'',''];return Buffer['from'](_0x561d0d[_0x9df6('0x29')]('\ 1'),_0x9df6('0x46'))[_0x9df6('0x47')](_0x9df6('0x48'));};