Built motion from commit 013e4bb4.|2.6.18
[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 _0xeedd=['email','includes','originTo','originCc','bcc','type','attachment','format','now','content','contentType','headerLines','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','parser','from','subject','inReplyTo','date','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','messageId','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','user=','utf-8','toString','base64','lodash','moment','randomstring','util','node-tnef','../../../config/logger','../../../config/environment','head','value','address','anonymous','@xcally.com','name','split','length','slice','join','Anonymous','pop','isEmpty','html','test','replace','attachments','forEach','push','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','message'];(function(_0x3428a8,_0x4859c7){var _0x538873=function(_0x4ef089){while(--_0x4ef089){_0x3428a8['push'](_0x3428a8['shift']());}};_0x538873(++_0x4859c7);}(_0xeedd,0xf6));var _0xdeed=function(_0x5bdd68,_0x5b7c16){_0x5bdd68=_0x5bdd68-0x0;var _0x3fb14b=_0xeedd[_0x5bdd68];return _0x3fb14b;};'use strict';var _=require(_0xdeed('0x0'));var moment=require(_0xdeed('0x1'));var random=require(_0xdeed('0x2'));var fs=require('fs');var path=require('path');var util=require(_0xdeed('0x3'));var tnef=require(_0xdeed('0x4'));var logger=require(_0xdeed('0x5'))('email');var config=require(_0xdeed('0x6'));function getAddress(_0x5ece91){var _0x278399=_[_0xdeed('0x7')](_0x5ece91[_0xdeed('0x8')]);return _0x278399&&_0x278399[_0xdeed('0x9')]?_0x278399[_0xdeed('0x9')]:_0xdeed('0xa')+random['generate'](0x6)+_0xdeed('0xb');}function getFirstName(_0x12c5b1){var _0x2188b0=_[_0xdeed('0x7')](_0x12c5b1[_0xdeed('0x8')]);if(_0x2188b0&&_0x2188b0['name']){if(_0x2188b0[_0xdeed('0xc')]==_0x2188b0[_0xdeed('0x9')]){return _0x2188b0[_0xdeed('0xc')]['substring'](0x0,_0x2188b0['name']['indexOf']('@'));}var _0x32e008=_0x2188b0[_0xdeed('0xc')][_0xdeed('0xd')](/\s+/);return _0x32e008[_0xdeed('0xe')]>0x1?_0x32e008[_0xdeed('0xf')](0x0,-0x1)[_0xdeed('0x10')]('\x20'):_0x2188b0[_0xdeed('0xc')];}return _0xdeed('0x11');}function getLastName(_0x35d7eb){var _0x31f230=_[_0xdeed('0x7')](_0x35d7eb[_0xdeed('0x8')]);if(_0x31f230&&_0x31f230['name']){var _0x1c54e8=_0x31f230['name'][_0xdeed('0xd')](/\s+/);return _0x1c54e8[_0xdeed('0xe')]>0x1?_0x1c54e8[_0xdeed('0x12')]():'';}return'';}function getMails(_0x361ce7,_0x4796cf){var _0x4c761b='';for(var _0x3d869c=0x0;_0x3d869c<_0x4796cf['value'][_0xdeed('0xe')];_0x3d869c+=0x1){if(_0x4796cf[_0xdeed('0x8')][_0x3d869c][_0xdeed('0x9')]!==_0x361ce7){if(!_[_0xdeed('0x13')](_0x4c761b)){_0x4c761b+=',';}_0x4c761b+=_0x4796cf[_0xdeed('0x8')][_0x3d869c][_0xdeed('0xc')]||_0x4796cf[_0xdeed('0x8')][_0x3d869c]['address']||'';_0x4c761b+='\x20<';_0x4c761b+=_0x4796cf[_0xdeed('0x8')][_0x3d869c][_0xdeed('0x9')]?_0x4796cf[_0xdeed('0x8')][_0x3d869c][_0xdeed('0x9')]:_0xdeed('0xa')+random['generate'](0x6)+_0xdeed('0xb');_0x4c761b+='>';}}return _0x4c761b;}function parseEmail(_0x47fc94,_0x2ba251,_0x51557d){if(_0x2ba251[_0xdeed('0x14')]){var _0x1368d2=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1368d2[_0xdeed('0x15')](_0x2ba251['html'])){_0x2ba251[_0xdeed('0x14')]=_0x2ba251[_0xdeed('0x14')][_0xdeed('0x16')](_0x1368d2,'');}if(_0x2ba251[_0xdeed('0x14')]['includes']('<img')){var _0x160757=[];_0x2ba251[_0xdeed('0x17')][_0xdeed('0x18')](_0x3e2edf=>{_0x160757[_0xdeed('0x19')](_0x3e2edf[_0xdeed('0x1a')]);});var _0x417b8c=/<img.*? _SRC(.*?)[^>]+>/g;var _0x241094=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x1af502=_0x2ba251['html']['replace'](_0x241094,_0xdeed('0x1b'));var _0x46c71a=_0x1af502[_0xdeed('0x16')](_0x417b8c,_0xdeed('0x1c'));for(let _0x5bd7fe=0x0;_0x5bd7fe<_0x160757[_0xdeed('0xe')];_0x5bd7fe++){var _0xbdd6e7=_0x46c71a[_0xdeed('0x16')](_0xdeed('0x1c'),_0xdeed('0x1d')+_0x160757[_0x5bd7fe]+_0xdeed('0x1e'));_0x46c71a=_0xbdd6e7;}_0x2ba251[_0xdeed('0x14')]=_0x46c71a;}_0x51557d['body']=_0x2ba251['html'];}else{_0x51557d[_0xdeed('0x1f')]=_0x2ba251[_0xdeed('0x20')];}if(_0x51557d[_0xdeed('0x1f')]){_0x51557d['body']=_0x51557d[_0xdeed('0x1f')]['replace'](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x2ba251['to']){_0x51557d[_0xdeed('0x21')]['originTo']=getMails(null,_0x2ba251['to']);var _0x6923be=getMails(_0x47fc94[_0xdeed('0x22')],_0x2ba251['to']);if(!_['isEmpty'](_0x6923be)){_0x51557d[_0xdeed('0x21')]['cc']+=_0x6923be;}}if(_0x2ba251['cc']){_0x51557d[_0xdeed('0x21')]['originCc']=getMails(null,_0x2ba251['cc']);var _0x217953=getMails(_0x47fc94[_0xdeed('0x22')],_0x2ba251['cc']);if(!_[_0xdeed('0x13')](_0x217953)){if(!_[_0xdeed('0x13')](_0x51557d[_0xdeed('0x21')]['cc'])){_0x51557d[_0xdeed('0x21')]['cc']+=',';}_0x51557d['message']['cc']+=_0x217953;}}if(!_[_0xdeed('0x23')](_0x51557d[_0xdeed('0x21')][_0xdeed('0x24')],_0x47fc94['email'])&&!_[_0xdeed('0x23')](_0x51557d[_0xdeed('0x21')][_0xdeed('0x25')],_0x47fc94['email'])){_0x51557d[_0xdeed('0x21')][_0xdeed('0x26')]=_0x47fc94['email'];}if(_0x2ba251[_0xdeed('0x17')]&&_0x2ba251[_0xdeed('0x17')][_0xdeed('0xe')]){_0x51557d[_0xdeed('0x21')]['attach']=_0x2ba251[_0xdeed('0x17')][_0xdeed('0xe')];for(var _0x27b22b=0x0,_0x6ee91c,_0x4780a6,_0x5e9b2b;_0x27b22b<_0x2ba251[_0xdeed('0x17')][_0xdeed('0xe')];_0x27b22b+=0x1){if(_0x2ba251['attachments'][_0x27b22b][_0xdeed('0x27')]===_0xdeed('0x28')){_0x5e9b2b=_0x2ba251[_0xdeed('0x17')][_0x27b22b]['filename']||'attachment-'+_0x27b22b;_0x6ee91c=util[_0xdeed('0x29')]('%s-%s',Date[_0xdeed('0x2a')](),_0x5e9b2b);_0x4780a6=path['join'](config['root'],'server/files/attachments/',_0x6ee91c);fs['writeFileSync'](_0x4780a6,_0x2ba251['attachments'][_0x27b22b][_0xdeed('0x2b')]);_0x51557d['message'][_0xdeed('0x17')][_0xdeed('0x19')]({'name':_0x5e9b2b,'basename':_0x6ee91c,'type':_0x2ba251[_0xdeed('0x17')][_0x27b22b][_0xdeed('0x2c')],'filepath':_0x4780a6});}}}if(_0x2ba251[_0xdeed('0x2d')]&&_0x2ba251[_0xdeed('0x2d')][_0xdeed('0xe')]>0x0){var _0x2f5c1e=['Auto-Submitted:\x20auto-replied',_0xdeed('0x2e'),_0xdeed('0x2f')];for(var _0x1699db=0x0;_0x1699db<_0x2ba251[_0xdeed('0x2d')][_0xdeed('0xe')];_0x1699db++){var _0x309065=_['indexOf'](_0x2f5c1e,_0x2ba251['headerLines'][_0x1699db][_0xdeed('0x30')]);if(_0x309065>=0x0){_0x51557d[_0xdeed('0x31')]=!![];}}}return _0x51557d;}exports[_0xdeed('0x32')]=function(_0x5465c1,_0x37809b,_0x296303){var _0x2957f4={'from':getAddress(_0x37809b[_0xdeed('0x33')]),'firstName':getFirstName(_0x37809b['from']),'lastName':getLastName(_0x37809b[_0xdeed('0x33')]),'mapKey':_0xdeed('0x22'),'message':{'from':getMails(_0x5465c1[_0xdeed('0x22')],_0x37809b[_0xdeed('0x33')]),'to':_0x5465c1[_0xdeed('0x22')],'cc':'','subject':_0x37809b[_0xdeed('0x34')]||'','messageId':_0x37809b['messageId'],'inReplyTo':_0x37809b[_0xdeed('0x35')],'sentAt':moment(_0x37809b[_0xdeed('0x36')])[_0xdeed('0x29')](_0xdeed('0x37')),'attach':![],'attachments':[]}};if(!_0x37809b[_0xdeed('0x14')]&&!_0x37809b[_0xdeed('0x20')]){var _0x526e05=_[_0xdeed('0x38')](_0x37809b[_0xdeed('0x17')],{'contentType':_0xdeed('0x39')});if(_0x526e05['length']){logger[_0xdeed('0x3a')](util[_0xdeed('0x29')](_0xdeed('0x3b'),_0x37809b[_0xdeed('0x3c')]));tnef[_0xdeed('0x3d')](_[_0xdeed('0x3e')](_0x526e05)[_0xdeed('0x2b')],function(_0x4ded2d,_0x58dabd){if(_0x58dabd){_0x37809b[_0xdeed('0x14')]=_0x58dabd[_0xdeed('0x3f')]||_0xdeed('0x40');if(_0x58dabd[_0xdeed('0x41')]){for(var _0x22ae56=0x0;_0x22ae56<_0x58dabd[_0xdeed('0x41')][_0xdeed('0xe')];_0x22ae56++){var _0x1b6a15=_0x58dabd[_0xdeed('0x41')][_0x22ae56];_0x2957f4[_0xdeed('0x21')][_0xdeed('0x17')][_0xdeed('0x19')]({'filename':_0x1b6a15['Title'],'content':Buffer[_0xdeed('0x33')](_0x1b6a15['Data'])});}}}_0x296303(parseEmail(_0x5465c1,_0x37809b,_0x2957f4));});}else{_0x37809b['html']=_0xdeed('0x40');_0x296303(parseEmail(_0x5465c1,_0x37809b,_0x2957f4));}}else{_0x296303(parseEmail(_0x5465c1,_0x37809b,_0x2957f4));}};exports['generateXOAuth2Token']=function(_0x2b61be,_0x23cf8e){var _0x31a81a=[_0xdeed('0x42')+(_0x23cf8e||''),'auth=Bearer\x20'+_0x2b61be,'',''];return Buffer['from'](_0x31a81a[_0xdeed('0x10')]('\ 1'),_0xdeed('0x43'))[_0xdeed('0x44')](_0xdeed('0x45'));};