Built motion from commit b0a9a629.|2.6.33
[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 _0x495b=['messageId','inReplyTo','filter','application/ms-tnef','format','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','toString','base64','lodash','moment','randomstring','util','node-tnef','../../../config/logger','../../../config/environment','value','address','generate','@xcally.com','head','name','substring','indexOf','split','slice','join','length','isEmpty','anonymous','test','html','includes','attachments','forEach','push','filename','_SRC','replace','_IMG','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','email','originCc','bcc','attachment','attachment-','%s-%s','now','root','writeFileSync','content','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','from','subject'];(function(_0x1d9aa0,_0x272488){var _0x226868=function(_0x17127c){while(--_0x17127c){_0x1d9aa0['push'](_0x1d9aa0['shift']());}};_0x226868(++_0x272488);}(_0x495b,0x174));var _0xb495=function(_0xd624b7,_0x20441d){_0xd624b7=_0xd624b7-0x0;var _0x31b396=_0x495b[_0xd624b7];return _0x31b396;};'use strict';var _=require(_0xb495('0x0'));var moment=require(_0xb495('0x1'));var random=require(_0xb495('0x2'));var fs=require('fs');var path=require('path');var util=require(_0xb495('0x3'));var tnef=require(_0xb495('0x4'));var logger=require(_0xb495('0x5'))('email');var config=require(_0xb495('0x6'));function getAddress(_0x10e537){var _0x339aa3=_['head'](_0x10e537[_0xb495('0x7')]);return _0x339aa3&&_0x339aa3[_0xb495('0x8')]?_0x339aa3[_0xb495('0x8')]:'anonymous'+random[_0xb495('0x9')](0x6)+_0xb495('0xa');}function getFirstName(_0x4478ce){var _0x2a667e=_[_0xb495('0xb')](_0x4478ce[_0xb495('0x7')]);if(_0x2a667e&&_0x2a667e[_0xb495('0xc')]){if(_0x2a667e[_0xb495('0xc')]==_0x2a667e[_0xb495('0x8')]){return _0x2a667e[_0xb495('0xc')][_0xb495('0xd')](0x0,_0x2a667e['name'][_0xb495('0xe')]('@'));}var _0x34e507=_0x2a667e[_0xb495('0xc')][_0xb495('0xf')](/\s+/);return _0x34e507['length']>0x1?_0x34e507[_0xb495('0x10')](0x0,-0x1)[_0xb495('0x11')]('\x20'):_0x2a667e[_0xb495('0xc')];}return'Anonymous';}function getLastName(_0x57e816){var _0x444a50=_[_0xb495('0xb')](_0x57e816['value']);if(_0x444a50&&_0x444a50['name']){var _0x32a1f4=_0x444a50[_0xb495('0xc')][_0xb495('0xf')](/\s+/);return _0x32a1f4['length']>0x1?_0x32a1f4['pop']():'';}return'';}function getMails(_0x3aceb9,_0x248f52){var _0x38ef4e='';for(var _0x70c392=0x0;_0x70c392<_0x248f52[_0xb495('0x7')][_0xb495('0x12')];_0x70c392+=0x1){if(_0x248f52[_0xb495('0x7')][_0x70c392][_0xb495('0x8')]!==_0x3aceb9){if(!_[_0xb495('0x13')](_0x38ef4e)){_0x38ef4e+=',';}_0x38ef4e+=_0x248f52['value'][_0x70c392][_0xb495('0xc')]||_0x248f52[_0xb495('0x7')][_0x70c392][_0xb495('0x8')]||'';_0x38ef4e+='\x20<';_0x38ef4e+=_0x248f52[_0xb495('0x7')][_0x70c392][_0xb495('0x8')]?_0x248f52['value'][_0x70c392]['address']:_0xb495('0x14')+random[_0xb495('0x9')](0x6)+'@xcally.com';_0x38ef4e+='>';}}return _0x38ef4e;}function parseEmail(_0x4c1be2,_0x36daf2,_0x5354e8){if(_0x36daf2['html']){var _0x3cc95b=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x3cc95b[_0xb495('0x15')](_0x36daf2[_0xb495('0x16')])){_0x36daf2[_0xb495('0x16')]=_0x36daf2['html']['replace'](_0x3cc95b,'');}if(_0x36daf2[_0xb495('0x16')][_0xb495('0x17')]('<img')){var _0x466775=[];_0x36daf2[_0xb495('0x18')][_0xb495('0x19')](_0x5d520e=>{_0x466775[_0xb495('0x1a')](_0x5d520e[_0xb495('0x1b')]);});var _0x18686a=/<img.*? _SRC(.*?)[^>]+>/g;var _0x123403=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x308579=_0x36daf2[_0xb495('0x16')]['replace'](_0x123403,_0xb495('0x1c'));var _0x1c375e=_0x308579[_0xb495('0x1d')](_0x18686a,_0xb495('0x1e'));for(let _0x52d61b=0x0;_0x52d61b<_0x466775['length'];_0x52d61b++){var _0x1d5ef3=_0x1c375e[_0xb495('0x1d')](_0xb495('0x1e'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x466775[_0x52d61b]+_0xb495('0x1f'));_0x1c375e=_0x1d5ef3;}_0x36daf2[_0xb495('0x16')]=_0x1c375e;}_0x5354e8[_0xb495('0x20')]=_0x36daf2[_0xb495('0x16')];}else{_0x5354e8['body']=_0x36daf2[_0xb495('0x21')];}if(_0x5354e8['body']){_0x5354e8['body']=_0x5354e8[_0xb495('0x20')]['replace'](/<a\s+/gi,_0xb495('0x22'));}if(_0x36daf2['to']){_0x5354e8[_0xb495('0x23')][_0xb495('0x24')]=getMails(null,_0x36daf2['to']);var _0x57679b=getMails(_0x4c1be2[_0xb495('0x25')],_0x36daf2['to']);if(!_[_0xb495('0x13')](_0x57679b)){_0x5354e8['message']['cc']+=_0x57679b;}}if(_0x36daf2['cc']){_0x5354e8[_0xb495('0x23')][_0xb495('0x26')]=getMails(null,_0x36daf2['cc']);var _0x559696=getMails(_0x4c1be2[_0xb495('0x25')],_0x36daf2['cc']);if(!_[_0xb495('0x13')](_0x559696)){if(!_[_0xb495('0x13')](_0x5354e8[_0xb495('0x23')]['cc'])){_0x5354e8[_0xb495('0x23')]['cc']+=',';}_0x5354e8['message']['cc']+=_0x559696;}}if(!_[_0xb495('0x17')](_0x5354e8['message'][_0xb495('0x24')],_0x4c1be2['email'])&&!_['includes'](_0x5354e8[_0xb495('0x23')]['originCc'],_0x4c1be2[_0xb495('0x25')])){_0x5354e8['message'][_0xb495('0x27')]=_0x4c1be2[_0xb495('0x25')];}if(_0x36daf2[_0xb495('0x18')]&&_0x36daf2['attachments']['length']){_0x5354e8[_0xb495('0x23')]['attach']=_0x36daf2[_0xb495('0x18')][_0xb495('0x12')];for(var _0x102408=0x0,_0x192e99,_0x46503d,_0x58f5ab;_0x102408<_0x36daf2[_0xb495('0x18')][_0xb495('0x12')];_0x102408+=0x1){if(_0x36daf2[_0xb495('0x18')][_0x102408]['type']===_0xb495('0x28')){_0x58f5ab=_0x36daf2['attachments'][_0x102408]['filename']||_0xb495('0x29')+_0x102408;_0x192e99=util['format'](_0xb495('0x2a'),Date[_0xb495('0x2b')](),_0x58f5ab);_0x46503d=path[_0xb495('0x11')](config[_0xb495('0x2c')],'server/files/attachments/',_0x192e99);fs[_0xb495('0x2d')](_0x46503d,_0x36daf2[_0xb495('0x18')][_0x102408][_0xb495('0x2e')]);_0x5354e8[_0xb495('0x23')]['attachments'][_0xb495('0x1a')]({'name':_0x58f5ab,'basename':_0x192e99,'type':_0x36daf2[_0xb495('0x18')][_0x102408]['contentType'],'filepath':_0x46503d});}}}if(_0x36daf2[_0xb495('0x2f')]&&_0x36daf2['headerLines'][_0xb495('0x12')]>0x0){var _0x363554=[_0xb495('0x30'),_0xb495('0x31'),_0xb495('0x32')];for(var _0x169fad=0x0;_0x169fad<_0x36daf2['headerLines'][_0xb495('0x12')];_0x169fad++){var _0xc8a9b9=_['indexOf'](_0x363554,_0x36daf2[_0xb495('0x2f')][_0x169fad][_0xb495('0x33')]);if(_0xc8a9b9>=0x0){_0x5354e8['isAutoreply']=!![];}}}return _0x5354e8;}exports['parser']=function(_0x3fcf22,_0x48daf8,_0x363a74){var _0x8033b4={'from':getAddress(_0x48daf8[_0xb495('0x34')]),'firstName':getFirstName(_0x48daf8['from']),'lastName':getLastName(_0x48daf8[_0xb495('0x34')]),'mapKey':_0xb495('0x25'),'message':{'from':getMails(_0x3fcf22['email'],_0x48daf8[_0xb495('0x34')]),'to':_0x3fcf22[_0xb495('0x25')],'cc':'','subject':_0x48daf8[_0xb495('0x35')]||'','messageId':_0x48daf8[_0xb495('0x36')],'inReplyTo':_0x48daf8[_0xb495('0x37')],'sentAt':moment(_0x48daf8['date'])['format']('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x48daf8[_0xb495('0x16')]&&!_0x48daf8['textAsHtml']){var _0x5a0777=_[_0xb495('0x38')](_0x48daf8[_0xb495('0x18')],{'contentType':_0xb495('0x39')});if(_0x5a0777[_0xb495('0x12')]){logger['info'](util[_0xb495('0x3a')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x48daf8['messageId']));tnef[_0xb495('0x3b')](_[_0xb495('0x3c')](_0x5a0777)[_0xb495('0x2e')],function(_0x3479c0,_0x16f1c3){if(_0x16f1c3){_0x48daf8[_0xb495('0x16')]=_0x16f1c3[_0xb495('0x3d')]||_0xb495('0x3e');if(_0x16f1c3[_0xb495('0x3f')]){for(var _0x25d37c=0x0;_0x25d37c<_0x16f1c3['Attachments'][_0xb495('0x12')];_0x25d37c++){var _0x4aa0eb=_0x16f1c3['Attachments'][_0x25d37c];_0x8033b4[_0xb495('0x23')]['attachments'][_0xb495('0x1a')]({'filename':_0x4aa0eb[_0xb495('0x40')],'content':Buffer[_0xb495('0x34')](_0x4aa0eb[_0xb495('0x41')])});}}}_0x363a74(parseEmail(_0x3fcf22,_0x48daf8,_0x8033b4));});}else{_0x48daf8[_0xb495('0x16')]=_0xb495('0x3e');_0x363a74(parseEmail(_0x3fcf22,_0x48daf8,_0x8033b4));}}else{_0x363a74(parseEmail(_0x3fcf22,_0x48daf8,_0x8033b4));}};exports[_0xb495('0x42')]=function(_0x2efb38,_0xa35075){var _0x3121bc=[_0xb495('0x43')+(_0xa35075||''),_0xb495('0x44')+_0x2efb38,'',''];return Buffer['from'](_0x3121bc[_0xb495('0x11')]('\ 1'),'utf-8')[_0xb495('0x45')](_0xb495('0x46'));};