Built motion from commit (unavailable).|2.3.92
[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 _0x2aa3=['head','address','anonymous','generate','@xcally.com','name','split','length','slice','Anonymous','value','pop','isEmpty','html','replace','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originCc','includes','bcc','attachments','type','attachment','filename','attachment-','%s-%s','now','join','root','server/files/attachments/','writeFileSync','content','push','contentType','parser','from','subject','messageId','inReplyTo','date','format','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','parseBuffer','first','<p>Empty\x20message</p>','Attachments','Data','getHost','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','lodash','moment','randomstring','path','../../../config/logger','email','../../../config/environment'];(function(_0x2a6644,_0x1b9d0c){var _0x33c14=function(_0x47722a){while(--_0x47722a){_0x2a6644['push'](_0x2a6644['shift']());}};_0x33c14(++_0x1b9d0c);}(_0x2aa3,0x83));var _0x32aa=function(_0x1b1791,_0x3723a1){_0x1b1791=_0x1b1791-0x0;var _0x2deba3=_0x2aa3[_0x1b1791];return _0x2deba3;};'use strict';var _=require(_0x32aa('0x0'));var moment=require(_0x32aa('0x1'));var random=require(_0x32aa('0x2'));var fs=require('fs');var path=require(_0x32aa('0x3'));var util=require('util');var tnef=require('node-tnef');var logger=require(_0x32aa('0x4'))(_0x32aa('0x5'));var config=require(_0x32aa('0x6'));function getAddress(_0x33612d){var _0x22e989=_[_0x32aa('0x7')](_0x33612d['value']);return _0x22e989&&_0x22e989[_0x32aa('0x8')]?_0x22e989[_0x32aa('0x8')]:_0x32aa('0x9')+random[_0x32aa('0xa')](0x6)+_0x32aa('0xb');}function getFirstName(_0x40c96a){var _0x2fe991=_[_0x32aa('0x7')](_0x40c96a['value']);if(_0x2fe991&&_0x2fe991[_0x32aa('0xc')]){var _0x56992d=_0x2fe991[_0x32aa('0xc')][_0x32aa('0xd')](/\s+/);return _0x56992d[_0x32aa('0xe')]?_0x56992d[_0x32aa('0xf')](0x0,-0x1)['join']('\x20'):_0x2fe991[_0x32aa('0xc')];}return _0x32aa('0x10');}function getLastName(_0x204e9e){var _0x59b0f6=_[_0x32aa('0x7')](_0x204e9e[_0x32aa('0x11')]);if(_0x59b0f6&&_0x59b0f6[_0x32aa('0xc')]){var _0x22c07a=_0x59b0f6[_0x32aa('0xc')][_0x32aa('0xd')](/\s+/);return _0x22c07a[_0x32aa('0xe')]>0x1?_0x22c07a[_0x32aa('0x12')]():'';}return'';}function getMails(_0x58d625,_0x274ae0){var _0x230d19='';for(var _0x1140a6=0x0;_0x1140a6<_0x274ae0[_0x32aa('0x11')][_0x32aa('0xe')];_0x1140a6+=0x1){if(_0x274ae0['value'][_0x1140a6][_0x32aa('0x8')]!==_0x58d625){if(!_[_0x32aa('0x13')](_0x230d19)){_0x230d19+=',';}_0x230d19+=_0x274ae0[_0x32aa('0x11')][_0x1140a6][_0x32aa('0xc')]||_0x274ae0[_0x32aa('0x11')][_0x1140a6]['address']||'';_0x230d19+='\x20<';_0x230d19+=_0x274ae0['value'][_0x1140a6][_0x32aa('0x8')]?_0x274ae0[_0x32aa('0x11')][_0x1140a6][_0x32aa('0x8')]:'anonymous'+random['generate'](0x6)+_0x32aa('0xb');_0x230d19+='>';}}return _0x230d19;}function parseEmail(_0x148255,_0x1d7490,_0xe4523f){if(_0x1d7490[_0x32aa('0x14')]){var _0x1cb0eb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1cb0eb['test'](_0x1d7490[_0x32aa('0x14')])){_0x1d7490[_0x32aa('0x14')]=_0x1d7490[_0x32aa('0x14')][_0x32aa('0x15')](_0x1cb0eb,'');}_0xe4523f[_0x32aa('0x16')]=_0x1d7490[_0x32aa('0x14')];}else{_0xe4523f[_0x32aa('0x16')]=_0x1d7490[_0x32aa('0x17')];}if(_0xe4523f[_0x32aa('0x16')]){_0xe4523f['body']=_0xe4523f[_0x32aa('0x16')]['replace'](/<a\s+/gi,_0x32aa('0x18'));}if(_0x1d7490['to']){_0xe4523f[_0x32aa('0x19')]['originTo']=getMails(null,_0x1d7490['to']);var _0x5870c4=getMails(_0x148255[_0x32aa('0x5')],_0x1d7490['to']);if(!_[_0x32aa('0x13')](_0x5870c4)){_0xe4523f[_0x32aa('0x19')]['cc']+=_0x5870c4;}}if(_0x1d7490['cc']){_0xe4523f[_0x32aa('0x19')][_0x32aa('0x1a')]=getMails(null,_0x1d7490['cc']);var _0x3606ae=getMails(_0x148255[_0x32aa('0x5')],_0x1d7490['cc']);if(!_[_0x32aa('0x13')](_0x3606ae)){if(!_[_0x32aa('0x13')](_0xe4523f['message']['cc'])){_0xe4523f[_0x32aa('0x19')]['cc']+=',';}_0xe4523f[_0x32aa('0x19')]['cc']+=_0x3606ae;}}if(!_['includes'](_0xe4523f[_0x32aa('0x19')]['originTo'],_0x148255['email'])&&!_[_0x32aa('0x1b')](_0xe4523f[_0x32aa('0x19')][_0x32aa('0x1a')],_0x148255[_0x32aa('0x5')])){_0xe4523f['message'][_0x32aa('0x1c')]=_0x148255[_0x32aa('0x5')];}if(_0x1d7490[_0x32aa('0x1d')]&&_0x1d7490[_0x32aa('0x1d')][_0x32aa('0xe')]){_0xe4523f[_0x32aa('0x19')]['attach']=_0x1d7490['attachments'][_0x32aa('0xe')];for(var _0x29899f=0x0,_0x136893,_0x2f64c2,_0x4d09db;_0x29899f<_0x1d7490['attachments'][_0x32aa('0xe')];_0x29899f+=0x1){if(_0x1d7490['attachments'][_0x29899f][_0x32aa('0x1e')]===_0x32aa('0x1f')){_0x4d09db=_0x1d7490['attachments'][_0x29899f][_0x32aa('0x20')]||_0x32aa('0x21')+_0x29899f;_0x136893=util['format'](_0x32aa('0x22'),Date[_0x32aa('0x23')](),_0x4d09db);_0x2f64c2=path[_0x32aa('0x24')](config[_0x32aa('0x25')],_0x32aa('0x26'),_0x136893);fs[_0x32aa('0x27')](_0x2f64c2,_0x1d7490[_0x32aa('0x1d')][_0x29899f][_0x32aa('0x28')]);_0xe4523f[_0x32aa('0x19')][_0x32aa('0x1d')][_0x32aa('0x29')]({'name':_0x4d09db,'basename':_0x136893,'type':_0x1d7490[_0x32aa('0x1d')][_0x29899f][_0x32aa('0x2a')],'filepath':_0x2f64c2});}}}return _0xe4523f;}exports[_0x32aa('0x2b')]=function(_0x5990b0,_0x5b0fe2,_0x404515){var _0x2aaa10={'from':getAddress(_0x5b0fe2[_0x32aa('0x2c')]),'firstName':getFirstName(_0x5b0fe2[_0x32aa('0x2c')]),'lastName':getLastName(_0x5b0fe2['from']),'mapKey':_0x32aa('0x5'),'message':{'from':getMails(_0x5990b0[_0x32aa('0x5')],_0x5b0fe2[_0x32aa('0x2c')]),'to':_0x5990b0[_0x32aa('0x5')],'cc':'','subject':_0x5b0fe2[_0x32aa('0x2d')]||'','messageId':_0x5b0fe2[_0x32aa('0x2e')],'inReplyTo':_0x5b0fe2[_0x32aa('0x2f')],'sentAt':moment(_0x5b0fe2[_0x32aa('0x30')])[_0x32aa('0x31')](_0x32aa('0x32')),'attach':![],'attachments':[]}};if(!_0x5b0fe2[_0x32aa('0x14')]&&!_0x5b0fe2['textAsHtml']){var _0x529d2c=_[_0x32aa('0x33')](_0x5b0fe2[_0x32aa('0x1d')],{'contentType':_0x32aa('0x34')});if(_0x529d2c[_0x32aa('0xe')]){logger[_0x32aa('0x35')](util[_0x32aa('0x31')](_0x32aa('0x36'),_0x5b0fe2['messageId']));tnef[_0x32aa('0x37')](_[_0x32aa('0x38')](_0x529d2c)[_0x32aa('0x28')],function(_0x355bc5,_0x517614){if(_0x517614){_0x5b0fe2[_0x32aa('0x14')]=_0x517614['BodyHTML']||_0x32aa('0x39');if(_0x517614[_0x32aa('0x3a')]){for(var _0x7ba190=0x0;_0x7ba190<_0x517614[_0x32aa('0x3a')][_0x32aa('0xe')];_0x7ba190++){var _0x5c4052=_0x517614[_0x32aa('0x3a')][_0x7ba190];_0x2aaa10[_0x32aa('0x19')][_0x32aa('0x1d')][_0x32aa('0x29')]({'filename':_0x5c4052['Title'],'content':new Buffer(_0x5c4052[_0x32aa('0x3b')])});}}}_0x404515(parseEmail(_0x5990b0,_0x5b0fe2,_0x2aaa10));});}else{_0x5b0fe2['html']=_0x32aa('0x39');_0x404515(parseEmail(_0x5990b0,_0x5b0fe2,_0x2aaa10));}}else{_0x404515(parseEmail(_0x5990b0,_0x5b0fe2,_0x2aaa10));}};exports[_0x32aa('0x3c')]=function(_0x4ac5b3){switch(_0x4ac5b3){case _0x32aa('0x3d'):return _0x32aa('0x3e');case _0x32aa('0x3f'):return _0x32aa('0x40');case _0x32aa('0x41'):return _0x32aa('0x42');case _0x32aa('0x43'):return _0x32aa('0x44');}return'127.0.0.1';};