Built motion from commit 3c2ce842.|2.6.31
[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 _0x1ad5=['content','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','parser','from','subject','messageId','inReplyTo','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','auth=Bearer\x20','utf-8','base64','lodash','moment','node-tnef','email','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name','substring','indexOf','split','length','Anonymous','html','test','replace','includes','<img','attachments','forEach','push','_SRC','_IMG','\x20]</span>','body','<a\x20target=\x22_blank\x22\x20','message','isEmpty','originCc','originTo','bcc','attach','type','attachment','filename','attachment-','format','%s-%s','now','join','writeFileSync'];(function(_0x545dda,_0x577f99){var _0xef8cba=function(_0x3cf2e8){while(--_0x3cf2e8){_0x545dda['push'](_0x545dda['shift']());}};_0xef8cba(++_0x577f99);}(_0x1ad5,0xef));var _0x51ad=function(_0x3afe18,_0x26922c){_0x3afe18=_0x3afe18-0x0;var _0x19ed1f=_0x1ad5[_0x3afe18];return _0x19ed1f;};'use strict';var _=require(_0x51ad('0x0'));var moment=require(_0x51ad('0x1'));var random=require('randomstring');var fs=require('fs');var path=require('path');var util=require('util');var tnef=require(_0x51ad('0x2'));var logger=require('../../../config/logger')(_0x51ad('0x3'));var config=require(_0x51ad('0x4'));function getAddress(_0x277ff1){var _0x46df33=_[_0x51ad('0x5')](_0x277ff1[_0x51ad('0x6')]);return _0x46df33&&_0x46df33[_0x51ad('0x7')]?_0x46df33[_0x51ad('0x7')]:_0x51ad('0x8')+random[_0x51ad('0x9')](0x6)+_0x51ad('0xa');}function getFirstName(_0x37147a){var _0x393dd3=_[_0x51ad('0x5')](_0x37147a['value']);if(_0x393dd3&&_0x393dd3[_0x51ad('0xb')]){if(_0x393dd3[_0x51ad('0xb')]==_0x393dd3['address']){return _0x393dd3['name'][_0x51ad('0xc')](0x0,_0x393dd3[_0x51ad('0xb')][_0x51ad('0xd')]('@'));}var _0x378ddb=_0x393dd3[_0x51ad('0xb')][_0x51ad('0xe')](/\s+/);return _0x378ddb[_0x51ad('0xf')]>0x1?_0x378ddb['slice'](0x0,-0x1)['join']('\x20'):_0x393dd3['name'];}return _0x51ad('0x10');}function getLastName(_0x1de62d){var _0x1b0e0b=_['head'](_0x1de62d['value']);if(_0x1b0e0b&&_0x1b0e0b['name']){var _0x37cc72=_0x1b0e0b[_0x51ad('0xb')][_0x51ad('0xe')](/\s+/);return _0x37cc72[_0x51ad('0xf')]>0x1?_0x37cc72['pop']():'';}return'';}function getMails(_0x433799,_0x1df05a){var _0x256e3b='';for(var _0x437beb=0x0;_0x437beb<_0x1df05a[_0x51ad('0x6')][_0x51ad('0xf')];_0x437beb+=0x1){if(_0x1df05a['value'][_0x437beb]['address']!==_0x433799){if(!_['isEmpty'](_0x256e3b)){_0x256e3b+=',';}_0x256e3b+=_0x1df05a['value'][_0x437beb][_0x51ad('0xb')]||_0x1df05a[_0x51ad('0x6')][_0x437beb][_0x51ad('0x7')]||'';_0x256e3b+='\x20<';_0x256e3b+=_0x1df05a['value'][_0x437beb][_0x51ad('0x7')]?_0x1df05a[_0x51ad('0x6')][_0x437beb][_0x51ad('0x7')]:_0x51ad('0x8')+random[_0x51ad('0x9')](0x6)+'@xcally.com';_0x256e3b+='>';}}return _0x256e3b;}function parseEmail(_0x5d4b4d,_0x37cb39,_0x46e8f9){if(_0x37cb39[_0x51ad('0x11')]){var _0x3ed779=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x3ed779[_0x51ad('0x12')](_0x37cb39[_0x51ad('0x11')])){_0x37cb39[_0x51ad('0x11')]=_0x37cb39[_0x51ad('0x11')][_0x51ad('0x13')](_0x3ed779,'');}if(_0x37cb39[_0x51ad('0x11')][_0x51ad('0x14')](_0x51ad('0x15'))){var _0x4cedd2=[];_0x37cb39[_0x51ad('0x16')][_0x51ad('0x17')](_0x3d56ad=>{_0x4cedd2[_0x51ad('0x18')](_0x3d56ad['filename']);});var _0xfadb0e=/<img.*? _SRC(.*?)[^>]+>/g;var _0x30ff1d=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x1cbee1=_0x37cb39[_0x51ad('0x11')][_0x51ad('0x13')](_0x30ff1d,_0x51ad('0x19'));var _0x4bb7b3=_0x1cbee1[_0x51ad('0x13')](_0xfadb0e,'_IMG');for(let _0x2d5abf=0x0;_0x2d5abf<_0x4cedd2[_0x51ad('0xf')];_0x2d5abf++){var _0x4efdf6=_0x4bb7b3[_0x51ad('0x13')](_0x51ad('0x1a'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x4cedd2[_0x2d5abf]+_0x51ad('0x1b'));_0x4bb7b3=_0x4efdf6;}_0x37cb39[_0x51ad('0x11')]=_0x4bb7b3;}_0x46e8f9['body']=_0x37cb39['html'];}else{_0x46e8f9[_0x51ad('0x1c')]=_0x37cb39['textAsHtml'];}if(_0x46e8f9[_0x51ad('0x1c')]){_0x46e8f9[_0x51ad('0x1c')]=_0x46e8f9['body'][_0x51ad('0x13')](/<a\s+/gi,_0x51ad('0x1d'));}if(_0x37cb39['to']){_0x46e8f9[_0x51ad('0x1e')]['originTo']=getMails(null,_0x37cb39['to']);var _0xe1f698=getMails(_0x5d4b4d['email'],_0x37cb39['to']);if(!_[_0x51ad('0x1f')](_0xe1f698)){_0x46e8f9[_0x51ad('0x1e')]['cc']+=_0xe1f698;}}if(_0x37cb39['cc']){_0x46e8f9[_0x51ad('0x1e')][_0x51ad('0x20')]=getMails(null,_0x37cb39['cc']);var _0x5f5ab6=getMails(_0x5d4b4d['email'],_0x37cb39['cc']);if(!_[_0x51ad('0x1f')](_0x5f5ab6)){if(!_[_0x51ad('0x1f')](_0x46e8f9[_0x51ad('0x1e')]['cc'])){_0x46e8f9[_0x51ad('0x1e')]['cc']+=',';}_0x46e8f9[_0x51ad('0x1e')]['cc']+=_0x5f5ab6;}}if(!_[_0x51ad('0x14')](_0x46e8f9[_0x51ad('0x1e')][_0x51ad('0x21')],_0x5d4b4d[_0x51ad('0x3')])&&!_[_0x51ad('0x14')](_0x46e8f9[_0x51ad('0x1e')][_0x51ad('0x20')],_0x5d4b4d[_0x51ad('0x3')])){_0x46e8f9[_0x51ad('0x1e')][_0x51ad('0x22')]=_0x5d4b4d[_0x51ad('0x3')];}if(_0x37cb39['attachments']&&_0x37cb39['attachments'][_0x51ad('0xf')]){_0x46e8f9[_0x51ad('0x1e')][_0x51ad('0x23')]=_0x37cb39[_0x51ad('0x16')][_0x51ad('0xf')];for(var _0x13a9d7=0x0,_0x1ddf86,_0x4486cf,_0x6177b7;_0x13a9d7<_0x37cb39[_0x51ad('0x16')][_0x51ad('0xf')];_0x13a9d7+=0x1){if(_0x37cb39[_0x51ad('0x16')][_0x13a9d7][_0x51ad('0x24')]===_0x51ad('0x25')){_0x6177b7=_0x37cb39[_0x51ad('0x16')][_0x13a9d7][_0x51ad('0x26')]||_0x51ad('0x27')+_0x13a9d7;_0x1ddf86=util[_0x51ad('0x28')](_0x51ad('0x29'),Date[_0x51ad('0x2a')](),_0x6177b7);_0x4486cf=path[_0x51ad('0x2b')](config['root'],'server/files/attachments/',_0x1ddf86);fs[_0x51ad('0x2c')](_0x4486cf,_0x37cb39['attachments'][_0x13a9d7][_0x51ad('0x2d')]);_0x46e8f9[_0x51ad('0x1e')]['attachments'][_0x51ad('0x18')]({'name':_0x6177b7,'basename':_0x1ddf86,'type':_0x37cb39[_0x51ad('0x16')][_0x13a9d7]['contentType'],'filepath':_0x4486cf});}}}if(_0x37cb39[_0x51ad('0x2e')]&&_0x37cb39[_0x51ad('0x2e')][_0x51ad('0xf')]>0x0){var _0x2724f2=[_0x51ad('0x2f'),_0x51ad('0x30'),_0x51ad('0x31')];for(var _0x539aae=0x0;_0x539aae<_0x37cb39[_0x51ad('0x2e')][_0x51ad('0xf')];_0x539aae++){var _0x2cd352=_[_0x51ad('0xd')](_0x2724f2,_0x37cb39[_0x51ad('0x2e')][_0x539aae][_0x51ad('0x32')]);if(_0x2cd352>=0x0){_0x46e8f9[_0x51ad('0x33')]=!![];}}}return _0x46e8f9;}exports[_0x51ad('0x34')]=function(_0x425f52,_0x1bb5a2,_0x3fc5b6){var _0xc59637={'from':getAddress(_0x1bb5a2[_0x51ad('0x35')]),'firstName':getFirstName(_0x1bb5a2[_0x51ad('0x35')]),'lastName':getLastName(_0x1bb5a2[_0x51ad('0x35')]),'mapKey':_0x51ad('0x3'),'message':{'from':getMails(_0x425f52[_0x51ad('0x3')],_0x1bb5a2[_0x51ad('0x35')]),'to':_0x425f52[_0x51ad('0x3')],'cc':'','subject':_0x1bb5a2[_0x51ad('0x36')]||'','messageId':_0x1bb5a2[_0x51ad('0x37')],'inReplyTo':_0x1bb5a2[_0x51ad('0x38')],'sentAt':moment(_0x1bb5a2['date'])[_0x51ad('0x28')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x1bb5a2[_0x51ad('0x11')]&&!_0x1bb5a2['textAsHtml']){var _0xd3bb37=_[_0x51ad('0x39')](_0x1bb5a2['attachments'],{'contentType':_0x51ad('0x3a')});if(_0xd3bb37[_0x51ad('0xf')]){logger[_0x51ad('0x3b')](util[_0x51ad('0x28')](_0x51ad('0x3c'),_0x1bb5a2[_0x51ad('0x37')]));tnef[_0x51ad('0x3d')](_['first'](_0xd3bb37)[_0x51ad('0x2d')],function(_0x2e21ce,_0x41eea1){if(_0x41eea1){_0x1bb5a2['html']=_0x41eea1[_0x51ad('0x3e')]||_0x51ad('0x3f');if(_0x41eea1[_0x51ad('0x40')]){for(var _0x100be9=0x0;_0x100be9<_0x41eea1[_0x51ad('0x40')][_0x51ad('0xf')];_0x100be9++){var _0x2ac433=_0x41eea1[_0x51ad('0x40')][_0x100be9];_0xc59637[_0x51ad('0x1e')][_0x51ad('0x16')][_0x51ad('0x18')]({'filename':_0x2ac433[_0x51ad('0x41')],'content':Buffer[_0x51ad('0x35')](_0x2ac433[_0x51ad('0x42')])});}}}_0x3fc5b6(parseEmail(_0x425f52,_0x1bb5a2,_0xc59637));});}else{_0x1bb5a2['html']=_0x51ad('0x3f');_0x3fc5b6(parseEmail(_0x425f52,_0x1bb5a2,_0xc59637));}}else{_0x3fc5b6(parseEmail(_0x425f52,_0x1bb5a2,_0xc59637));}};exports[_0x51ad('0x43')]=function(_0x1bf80f,_0x1f2211){var _0x2cccf0=['user='+(_0x1f2211||''),_0x51ad('0x44')+_0x1bf80f,'',''];return Buffer[_0x51ad('0x35')](_0x2cccf0['join']('\ 1'),_0x51ad('0x45'))['toString'](_0x51ad('0x46'));};