Built motion from commit (unavailable).|2.4.4
[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 _0xe86b=['slice','Anonymous','pop','isEmpty','html','test','body','textAsHtml','replace','<a\x20target=\x22_blank\x22\x20','originTo','message','originCc','includes','bcc','attachments','attach','type','attachment','filename','format','%s-%s','now','join','root','server/files/attachments/','writeFileSync','push','contentType','parser','from','subject','messageId','YYYY-MM-DD\x20HH:mm:ss','filter','info','parseBuffer','first','content','BodyHTML','Attachments','Data','<p>Empty\x20message</p>','getHost','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook.office365.com','lodash','moment','path','node-tnef','../../../config/logger','email','../../../config/environment','address','anonymous','generate','@xcally.com','head','value','name','split','length'];(function(_0x1f109a,_0xc2a637){var _0x370018=function(_0x14f5e3){while(--_0x14f5e3){_0x1f109a['push'](_0x1f109a['shift']());}};_0x370018(++_0xc2a637);}(_0xe86b,0x182));var _0xbe86=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xe86b[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0xbe86('0x0'));var moment=require(_0xbe86('0x1'));var random=require('randomstring');var fs=require('fs');var path=require(_0xbe86('0x2'));var util=require('util');var tnef=require(_0xbe86('0x3'));var logger=require(_0xbe86('0x4'))(_0xbe86('0x5'));var config=require(_0xbe86('0x6'));function getAddress(_0x2890d1){var _0xaf5c50=_['head'](_0x2890d1['value']);return _0xaf5c50&&_0xaf5c50[_0xbe86('0x7')]?_0xaf5c50['address']:_0xbe86('0x8')+random[_0xbe86('0x9')](0x6)+_0xbe86('0xa');}function getFirstName(_0xb2be34){var _0x1c5be6=_[_0xbe86('0xb')](_0xb2be34[_0xbe86('0xc')]);if(_0x1c5be6&&_0x1c5be6[_0xbe86('0xd')]){var _0x5bb316=_0x1c5be6[_0xbe86('0xd')][_0xbe86('0xe')](/\s+/);return _0x5bb316[_0xbe86('0xf')]?_0x5bb316[_0xbe86('0x10')](0x0,-0x1)['join']('\x20'):_0x1c5be6[_0xbe86('0xd')];}return _0xbe86('0x11');}function getLastName(_0x1431b2){var _0x3006c0=_[_0xbe86('0xb')](_0x1431b2['value']);if(_0x3006c0&&_0x3006c0[_0xbe86('0xd')]){var _0x4a535e=_0x3006c0[_0xbe86('0xd')][_0xbe86('0xe')](/\s+/);return _0x4a535e[_0xbe86('0xf')]>0x1?_0x4a535e[_0xbe86('0x12')]():'';}return'';}function getMails(_0x4855d3,_0x2ca975){var _0x57086f='';for(var _0x106509=0x0;_0x106509<_0x2ca975[_0xbe86('0xc')][_0xbe86('0xf')];_0x106509+=0x1){if(_0x2ca975[_0xbe86('0xc')][_0x106509][_0xbe86('0x7')]!==_0x4855d3){if(!_[_0xbe86('0x13')](_0x57086f)){_0x57086f+=',';}_0x57086f+=_0x2ca975[_0xbe86('0xc')][_0x106509]['name']||_0x2ca975[_0xbe86('0xc')][_0x106509][_0xbe86('0x7')]||'';_0x57086f+='\x20<';_0x57086f+=_0x2ca975['value'][_0x106509][_0xbe86('0x7')]?_0x2ca975[_0xbe86('0xc')][_0x106509][_0xbe86('0x7')]:_0xbe86('0x8')+random[_0xbe86('0x9')](0x6)+_0xbe86('0xa');_0x57086f+='>';}}return _0x57086f;}function parseEmail(_0x15c07c,_0xdd781b,_0x563392){if(_0xdd781b[_0xbe86('0x14')]){var _0x2d801f=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x2d801f[_0xbe86('0x15')](_0xdd781b[_0xbe86('0x14')])){_0xdd781b[_0xbe86('0x14')]=_0xdd781b[_0xbe86('0x14')]['replace'](_0x2d801f,'');}_0x563392[_0xbe86('0x16')]=_0xdd781b[_0xbe86('0x14')];}else{_0x563392[_0xbe86('0x16')]=_0xdd781b[_0xbe86('0x17')];}if(_0x563392['body']){_0x563392[_0xbe86('0x16')]=_0x563392['body'][_0xbe86('0x18')](/<a\s+/gi,_0xbe86('0x19'));}if(_0xdd781b['to']){_0x563392['message'][_0xbe86('0x1a')]=getMails(null,_0xdd781b['to']);var _0x572be5=getMails(_0x15c07c[_0xbe86('0x5')],_0xdd781b['to']);if(!_[_0xbe86('0x13')](_0x572be5)){_0x563392['message']['cc']+=_0x572be5;}}if(_0xdd781b['cc']){_0x563392[_0xbe86('0x1b')][_0xbe86('0x1c')]=getMails(null,_0xdd781b['cc']);var _0x160cee=getMails(_0x15c07c[_0xbe86('0x5')],_0xdd781b['cc']);if(!_[_0xbe86('0x13')](_0x160cee)){if(!_[_0xbe86('0x13')](_0x563392[_0xbe86('0x1b')]['cc'])){_0x563392[_0xbe86('0x1b')]['cc']+=',';}_0x563392[_0xbe86('0x1b')]['cc']+=_0x160cee;}}if(!_[_0xbe86('0x1d')](_0x563392['message']['originTo'],_0x15c07c['email'])&&!_[_0xbe86('0x1d')](_0x563392['message'][_0xbe86('0x1c')],_0x15c07c[_0xbe86('0x5')])){_0x563392['message'][_0xbe86('0x1e')]=_0x15c07c[_0xbe86('0x5')];}if(_0xdd781b[_0xbe86('0x1f')]&&_0xdd781b[_0xbe86('0x1f')]['length']){_0x563392['message'][_0xbe86('0x20')]=_0xdd781b[_0xbe86('0x1f')]['length'];for(var _0x3cee56=0x0,_0x4c324b,_0x1bf8bd,_0x3bdf19;_0x3cee56<_0xdd781b['attachments'][_0xbe86('0xf')];_0x3cee56+=0x1){if(_0xdd781b[_0xbe86('0x1f')][_0x3cee56][_0xbe86('0x21')]===_0xbe86('0x22')){_0x3bdf19=_0xdd781b[_0xbe86('0x1f')][_0x3cee56][_0xbe86('0x23')]||'attachment-'+_0x3cee56;_0x4c324b=util[_0xbe86('0x24')](_0xbe86('0x25'),Date[_0xbe86('0x26')](),_0x3bdf19);_0x1bf8bd=path[_0xbe86('0x27')](config[_0xbe86('0x28')],_0xbe86('0x29'),_0x4c324b);fs[_0xbe86('0x2a')](_0x1bf8bd,_0xdd781b[_0xbe86('0x1f')][_0x3cee56]['content']);_0x563392['message']['attachments'][_0xbe86('0x2b')]({'name':_0x3bdf19,'basename':_0x4c324b,'type':_0xdd781b['attachments'][_0x3cee56][_0xbe86('0x2c')],'filepath':_0x1bf8bd});}}}return _0x563392;}exports[_0xbe86('0x2d')]=function(_0x1a0590,_0x296c42,_0x5d2744){var _0x282b53={'from':getAddress(_0x296c42[_0xbe86('0x2e')]),'firstName':getFirstName(_0x296c42['from']),'lastName':getLastName(_0x296c42['from']),'mapKey':'email','message':{'from':getMails(_0x1a0590[_0xbe86('0x5')],_0x296c42[_0xbe86('0x2e')]),'to':_0x1a0590[_0xbe86('0x5')],'cc':'','subject':_0x296c42[_0xbe86('0x2f')]||'','messageId':_0x296c42[_0xbe86('0x30')],'inReplyTo':_0x296c42['inReplyTo'],'sentAt':moment(_0x296c42['date'])[_0xbe86('0x24')](_0xbe86('0x31')),'attach':![],'attachments':[]}};if(!_0x296c42[_0xbe86('0x14')]&&!_0x296c42[_0xbe86('0x17')]){var _0x10d150=_[_0xbe86('0x32')](_0x296c42[_0xbe86('0x1f')],{'contentType':'application/ms-tnef'});if(_0x10d150[_0xbe86('0xf')]){logger[_0xbe86('0x33')](util[_0xbe86('0x24')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x296c42[_0xbe86('0x30')]));tnef[_0xbe86('0x34')](_[_0xbe86('0x35')](_0x10d150)[_0xbe86('0x36')],function(_0x24dde1,_0x20f895){if(_0x20f895){_0x296c42[_0xbe86('0x14')]=_0x20f895[_0xbe86('0x37')]||'<p>Empty\x20message</p>';if(_0x20f895[_0xbe86('0x38')]){for(var _0x306503=0x0;_0x306503<_0x20f895[_0xbe86('0x38')][_0xbe86('0xf')];_0x306503++){var _0xe84915=_0x20f895[_0xbe86('0x38')][_0x306503];_0x282b53[_0xbe86('0x1b')]['attachments'][_0xbe86('0x2b')]({'filename':_0xe84915['Title'],'content':new Buffer(_0xe84915[_0xbe86('0x39')])});}}}_0x5d2744(parseEmail(_0x1a0590,_0x296c42,_0x282b53));});}else{_0x296c42['html']=_0xbe86('0x3a');_0x5d2744(parseEmail(_0x1a0590,_0x296c42,_0x282b53));}}else{_0x5d2744(parseEmail(_0x1a0590,_0x296c42,_0x282b53));}};exports[_0xbe86('0x3b')]=function(_0x4b0b95){switch(_0x4b0b95){case _0xbe86('0x3c'):return _0xbe86('0x3d');case _0xbe86('0x3e'):return _0xbe86('0x3f');case _0xbe86('0x40'):return _0xbe86('0x41');case'outlook365':return _0xbe86('0x42');}return'127.0.0.1';};