Built motion from commit (unavailable).|2.4.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 _0xc66c=['originTo','message','originCc','includes','attachments','type','attachment','filename','attachment-','format','%s-%s','root','content','push','contentType','parser','from','subject','messageId','date','YYYY-MM-DD\x20HH:mm:ss','textAsHtml','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','first','BodyHTML','Attachments','Title','<p>Empty\x20message</p>','getHost','imap.gmail.com','yahoo','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','randomstring','path','util','node-tnef','../../../config/logger','email','../../../config/environment','head','value','address','anonymous','generate','@xcally.com','name','split','length','slice','join','pop','isEmpty','test','html','replace','body','<a\x20target=\x22_blank\x22\x20'];(function(_0x98a242,_0x5a1a6f){var _0x3387f6=function(_0x360acb){while(--_0x360acb){_0x98a242['push'](_0x98a242['shift']());}};_0x3387f6(++_0x5a1a6f);}(_0xc66c,0x1b3));var _0xcc66=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0xc66c[_0x4cf98e];return _0x1623ac;};'use strict';var _=require(_0xcc66('0x0'));var moment=require(_0xcc66('0x1'));var random=require(_0xcc66('0x2'));var fs=require('fs');var path=require(_0xcc66('0x3'));var util=require(_0xcc66('0x4'));var tnef=require(_0xcc66('0x5'));var logger=require(_0xcc66('0x6'))(_0xcc66('0x7'));var config=require(_0xcc66('0x8'));function getAddress(_0x72a799){var _0x3972b8=_[_0xcc66('0x9')](_0x72a799[_0xcc66('0xa')]);return _0x3972b8&&_0x3972b8[_0xcc66('0xb')]?_0x3972b8[_0xcc66('0xb')]:_0xcc66('0xc')+random[_0xcc66('0xd')](0x6)+_0xcc66('0xe');}function getFirstName(_0x15342d){var _0x7fc9ff=_['head'](_0x15342d['value']);if(_0x7fc9ff&&_0x7fc9ff[_0xcc66('0xf')]){var _0x2d92f1=_0x7fc9ff[_0xcc66('0xf')][_0xcc66('0x10')](/\s+/);return _0x2d92f1[_0xcc66('0x11')]?_0x2d92f1[_0xcc66('0x12')](0x0,-0x1)[_0xcc66('0x13')]('\x20'):_0x7fc9ff[_0xcc66('0xf')];}return'Anonymous';}function getLastName(_0x4121ad){var _0x275d5d=_[_0xcc66('0x9')](_0x4121ad[_0xcc66('0xa')]);if(_0x275d5d&&_0x275d5d[_0xcc66('0xf')]){var _0x539388=_0x275d5d['name']['split'](/\s+/);return _0x539388['length']>0x1?_0x539388[_0xcc66('0x14')]():'';}return'';}function getMails(_0x5b35f3,_0x332991){var _0x59d6ee='';for(var _0x562d85=0x0;_0x562d85<_0x332991[_0xcc66('0xa')][_0xcc66('0x11')];_0x562d85+=0x1){if(_0x332991[_0xcc66('0xa')][_0x562d85]['address']!==_0x5b35f3){if(!_[_0xcc66('0x15')](_0x59d6ee)){_0x59d6ee+=',';}_0x59d6ee+=_0x332991[_0xcc66('0xa')][_0x562d85][_0xcc66('0xf')]||_0x332991['value'][_0x562d85][_0xcc66('0xb')]||'';_0x59d6ee+='\x20<';_0x59d6ee+=_0x332991[_0xcc66('0xa')][_0x562d85]['address']?_0x332991['value'][_0x562d85]['address']:_0xcc66('0xc')+random[_0xcc66('0xd')](0x6)+_0xcc66('0xe');_0x59d6ee+='>';}}return _0x59d6ee;}function parseEmail(_0x28958f,_0x5e88e0,_0x44b596){if(_0x5e88e0['html']){var _0x29713b=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x29713b[_0xcc66('0x16')](_0x5e88e0['html'])){_0x5e88e0[_0xcc66('0x17')]=_0x5e88e0['html'][_0xcc66('0x18')](_0x29713b,'');}_0x44b596[_0xcc66('0x19')]=_0x5e88e0[_0xcc66('0x17')];}else{_0x44b596['body']=_0x5e88e0['textAsHtml'];}if(_0x44b596[_0xcc66('0x19')]){_0x44b596[_0xcc66('0x19')]=_0x44b596[_0xcc66('0x19')][_0xcc66('0x18')](/<a\s+/gi,_0xcc66('0x1a'));}if(_0x5e88e0['to']){_0x44b596['message'][_0xcc66('0x1b')]=getMails(null,_0x5e88e0['to']);var _0x5a06e6=getMails(_0x28958f[_0xcc66('0x7')],_0x5e88e0['to']);if(!_[_0xcc66('0x15')](_0x5a06e6)){_0x44b596['message']['cc']+=_0x5a06e6;}}if(_0x5e88e0['cc']){_0x44b596[_0xcc66('0x1c')][_0xcc66('0x1d')]=getMails(null,_0x5e88e0['cc']);var _0x273076=getMails(_0x28958f[_0xcc66('0x7')],_0x5e88e0['cc']);if(!_[_0xcc66('0x15')](_0x273076)){if(!_[_0xcc66('0x15')](_0x44b596[_0xcc66('0x1c')]['cc'])){_0x44b596[_0xcc66('0x1c')]['cc']+=',';}_0x44b596[_0xcc66('0x1c')]['cc']+=_0x273076;}}if(!_[_0xcc66('0x1e')](_0x44b596['message']['originTo'],_0x28958f[_0xcc66('0x7')])&&!_[_0xcc66('0x1e')](_0x44b596['message'][_0xcc66('0x1d')],_0x28958f[_0xcc66('0x7')])){_0x44b596[_0xcc66('0x1c')]['bcc']=_0x28958f['email'];}if(_0x5e88e0['attachments']&&_0x5e88e0[_0xcc66('0x1f')]['length']){_0x44b596[_0xcc66('0x1c')]['attach']=_0x5e88e0[_0xcc66('0x1f')]['length'];for(var _0x12f71f=0x0,_0x1d44f7,_0x2ab808,_0x47f79f;_0x12f71f<_0x5e88e0['attachments'][_0xcc66('0x11')];_0x12f71f+=0x1){if(_0x5e88e0[_0xcc66('0x1f')][_0x12f71f][_0xcc66('0x20')]===_0xcc66('0x21')){_0x47f79f=_0x5e88e0['attachments'][_0x12f71f][_0xcc66('0x22')]||_0xcc66('0x23')+_0x12f71f;_0x1d44f7=util[_0xcc66('0x24')](_0xcc66('0x25'),Date['now'](),_0x47f79f);_0x2ab808=path['join'](config[_0xcc66('0x26')],'server/files/attachments/',_0x1d44f7);fs['writeFileSync'](_0x2ab808,_0x5e88e0[_0xcc66('0x1f')][_0x12f71f][_0xcc66('0x27')]);_0x44b596[_0xcc66('0x1c')][_0xcc66('0x1f')][_0xcc66('0x28')]({'name':_0x47f79f,'basename':_0x1d44f7,'type':_0x5e88e0[_0xcc66('0x1f')][_0x12f71f][_0xcc66('0x29')],'filepath':_0x2ab808});}}}return _0x44b596;}exports[_0xcc66('0x2a')]=function(_0x5cd855,_0xddfa3f,_0x1bb3af){var _0x2abee4={'from':getAddress(_0xddfa3f['from']),'firstName':getFirstName(_0xddfa3f[_0xcc66('0x2b')]),'lastName':getLastName(_0xddfa3f[_0xcc66('0x2b')]),'mapKey':_0xcc66('0x7'),'message':{'from':getMails(_0x5cd855[_0xcc66('0x7')],_0xddfa3f[_0xcc66('0x2b')]),'to':_0x5cd855['email'],'cc':'','subject':_0xddfa3f[_0xcc66('0x2c')]||'','messageId':_0xddfa3f[_0xcc66('0x2d')],'inReplyTo':_0xddfa3f['inReplyTo'],'sentAt':moment(_0xddfa3f[_0xcc66('0x2e')])[_0xcc66('0x24')](_0xcc66('0x2f')),'attach':![],'attachments':[]}};if(!_0xddfa3f['html']&&!_0xddfa3f[_0xcc66('0x30')]){var _0x5d6a80=_[_0xcc66('0x31')](_0xddfa3f[_0xcc66('0x1f')],{'contentType':_0xcc66('0x32')});if(_0x5d6a80[_0xcc66('0x11')]){logger[_0xcc66('0x33')](util['format'](_0xcc66('0x34'),_0xddfa3f[_0xcc66('0x2d')]));tnef['parseBuffer'](_[_0xcc66('0x35')](_0x5d6a80)[_0xcc66('0x27')],function(_0x2e1b2e,_0x59da0){if(_0x59da0){_0xddfa3f[_0xcc66('0x17')]=_0x59da0[_0xcc66('0x36')]||'<p>Empty\x20message</p>';if(_0x59da0[_0xcc66('0x37')]){for(var _0x38c001=0x0;_0x38c001<_0x59da0[_0xcc66('0x37')][_0xcc66('0x11')];_0x38c001++){var _0x2bada6=_0x59da0[_0xcc66('0x37')][_0x38c001];_0x2abee4[_0xcc66('0x1c')][_0xcc66('0x1f')]['push']({'filename':_0x2bada6[_0xcc66('0x38')],'content':new Buffer(_0x2bada6['Data'])});}}}_0x1bb3af(parseEmail(_0x5cd855,_0xddfa3f,_0x2abee4));});}else{_0xddfa3f[_0xcc66('0x17')]=_0xcc66('0x39');_0x1bb3af(parseEmail(_0x5cd855,_0xddfa3f,_0x2abee4));}}else{_0x1bb3af(parseEmail(_0x5cd855,_0xddfa3f,_0x2abee4));}};exports[_0xcc66('0x3a')]=function(_0x46bc71){switch(_0x46bc71){case'gmail':return _0xcc66('0x3b');case _0xcc66('0x3c'):return'imap.mail.yahoo.com';case _0xcc66('0x3d'):return _0xcc66('0x3e');case _0xcc66('0x3f'):return _0xcc66('0x40');}return _0xcc66('0x41');};