Built motion from commit (unavailable).|2.5.9
[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 _0x953b=['replace','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','email','originCc','includes','bcc','attachments','attach','type','attachment','filename','attachment-','format','now','join','root','server/files/attachments/','writeFileSync','content','push','contentType','parser','from','subject','messageId','date','filter','application/ms-tnef','info','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','moment','randomstring','node-tnef','../../../config/logger','head','address','anonymous','@xcally.com','name','split','length','Anonymous','value','pop','isEmpty','generate','html','test'];(function(_0x75f869,_0x3690d6){var _0x10af8b=function(_0x22d3ff){while(--_0x22d3ff){_0x75f869['push'](_0x75f869['shift']());}};_0x10af8b(++_0x3690d6);}(_0x953b,0x6e));var _0xb953=function(_0xef3f5e,_0x43a689){_0xef3f5e=_0xef3f5e-0x0;var _0x365f70=_0x953b[_0xef3f5e];return _0x365f70;};'use strict';var _=require('lodash');var moment=require(_0xb953('0x0'));var random=require(_0xb953('0x1'));var fs=require('fs');var path=require('path');var util=require('util');var tnef=require(_0xb953('0x2'));var logger=require(_0xb953('0x3'))('email');var config=require('../../../config/environment');function getAddress(_0x52b141){var _0x2b10bd=_[_0xb953('0x4')](_0x52b141['value']);return _0x2b10bd&&_0x2b10bd[_0xb953('0x5')]?_0x2b10bd[_0xb953('0x5')]:_0xb953('0x6')+random['generate'](0x6)+_0xb953('0x7');}function getFirstName(_0x7a68f5){var _0x570ebb=_[_0xb953('0x4')](_0x7a68f5['value']);if(_0x570ebb&&_0x570ebb[_0xb953('0x8')]){var _0x4d7945=_0x570ebb[_0xb953('0x8')][_0xb953('0x9')](/\s+/);return _0x4d7945[_0xb953('0xa')]?_0x4d7945['slice'](0x0,-0x1)['join']('\x20'):_0x570ebb['name'];}return _0xb953('0xb');}function getLastName(_0x19eaf0){var _0x27dc36=_[_0xb953('0x4')](_0x19eaf0[_0xb953('0xc')]);if(_0x27dc36&&_0x27dc36[_0xb953('0x8')]){var _0x4f5701=_0x27dc36[_0xb953('0x8')][_0xb953('0x9')](/\s+/);return _0x4f5701[_0xb953('0xa')]>0x1?_0x4f5701[_0xb953('0xd')]():'';}return'';}function getMails(_0x2dc67e,_0x4e4b92){var _0xffa088='';for(var _0x422363=0x0;_0x422363<_0x4e4b92[_0xb953('0xc')][_0xb953('0xa')];_0x422363+=0x1){if(_0x4e4b92[_0xb953('0xc')][_0x422363][_0xb953('0x5')]!==_0x2dc67e){if(!_[_0xb953('0xe')](_0xffa088)){_0xffa088+=',';}_0xffa088+=_0x4e4b92[_0xb953('0xc')][_0x422363][_0xb953('0x8')]||_0x4e4b92['value'][_0x422363][_0xb953('0x5')]||'';_0xffa088+='\x20<';_0xffa088+=_0x4e4b92['value'][_0x422363][_0xb953('0x5')]?_0x4e4b92[_0xb953('0xc')][_0x422363][_0xb953('0x5')]:_0xb953('0x6')+random[_0xb953('0xf')](0x6)+_0xb953('0x7');_0xffa088+='>';}}return _0xffa088;}function parseEmail(_0x7e3bad,_0x3e9213,_0x3e3259){if(_0x3e9213[_0xb953('0x10')]){var _0x23b509=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x23b509[_0xb953('0x11')](_0x3e9213[_0xb953('0x10')])){_0x3e9213[_0xb953('0x10')]=_0x3e9213[_0xb953('0x10')][_0xb953('0x12')](_0x23b509,'');}_0x3e3259[_0xb953('0x13')]=_0x3e9213[_0xb953('0x10')];}else{_0x3e3259['body']=_0x3e9213[_0xb953('0x14')];}if(_0x3e3259[_0xb953('0x13')]){_0x3e3259[_0xb953('0x13')]=_0x3e3259[_0xb953('0x13')]['replace'](/<a\s+/gi,_0xb953('0x15'));}if(_0x3e9213['to']){_0x3e3259[_0xb953('0x16')][_0xb953('0x17')]=getMails(null,_0x3e9213['to']);var _0x4ef692=getMails(_0x7e3bad[_0xb953('0x18')],_0x3e9213['to']);if(!_[_0xb953('0xe')](_0x4ef692)){_0x3e3259['message']['cc']+=_0x4ef692;}}if(_0x3e9213['cc']){_0x3e3259['message'][_0xb953('0x19')]=getMails(null,_0x3e9213['cc']);var _0x5b85c7=getMails(_0x7e3bad['email'],_0x3e9213['cc']);if(!_[_0xb953('0xe')](_0x5b85c7)){if(!_['isEmpty'](_0x3e3259['message']['cc'])){_0x3e3259['message']['cc']+=',';}_0x3e3259[_0xb953('0x16')]['cc']+=_0x5b85c7;}}if(!_[_0xb953('0x1a')](_0x3e3259[_0xb953('0x16')][_0xb953('0x17')],_0x7e3bad[_0xb953('0x18')])&&!_[_0xb953('0x1a')](_0x3e3259[_0xb953('0x16')][_0xb953('0x19')],_0x7e3bad[_0xb953('0x18')])){_0x3e3259[_0xb953('0x16')][_0xb953('0x1b')]=_0x7e3bad[_0xb953('0x18')];}if(_0x3e9213[_0xb953('0x1c')]&&_0x3e9213[_0xb953('0x1c')][_0xb953('0xa')]){_0x3e3259[_0xb953('0x16')][_0xb953('0x1d')]=_0x3e9213[_0xb953('0x1c')][_0xb953('0xa')];for(var _0x55eeda=0x0,_0x5188df,_0x2af1d4,_0x2cd2ed;_0x55eeda<_0x3e9213[_0xb953('0x1c')][_0xb953('0xa')];_0x55eeda+=0x1){if(_0x3e9213[_0xb953('0x1c')][_0x55eeda][_0xb953('0x1e')]===_0xb953('0x1f')){_0x2cd2ed=_0x3e9213['attachments'][_0x55eeda][_0xb953('0x20')]||_0xb953('0x21')+_0x55eeda;_0x5188df=util[_0xb953('0x22')]('%s-%s',Date[_0xb953('0x23')](),_0x2cd2ed);_0x2af1d4=path[_0xb953('0x24')](config[_0xb953('0x25')],_0xb953('0x26'),_0x5188df);fs[_0xb953('0x27')](_0x2af1d4,_0x3e9213[_0xb953('0x1c')][_0x55eeda][_0xb953('0x28')]);_0x3e3259[_0xb953('0x16')]['attachments'][_0xb953('0x29')]({'name':_0x2cd2ed,'basename':_0x5188df,'type':_0x3e9213[_0xb953('0x1c')][_0x55eeda][_0xb953('0x2a')],'filepath':_0x2af1d4});}}}return _0x3e3259;}exports[_0xb953('0x2b')]=function(_0x5c8596,_0x1e242c,_0x322c80){var _0x3a8b18={'from':getAddress(_0x1e242c['from']),'firstName':getFirstName(_0x1e242c[_0xb953('0x2c')]),'lastName':getLastName(_0x1e242c['from']),'mapKey':_0xb953('0x18'),'message':{'from':getMails(_0x5c8596['email'],_0x1e242c['from']),'to':_0x5c8596['email'],'cc':'','subject':_0x1e242c[_0xb953('0x2d')]||'','messageId':_0x1e242c[_0xb953('0x2e')],'inReplyTo':_0x1e242c['inReplyTo'],'sentAt':moment(_0x1e242c[_0xb953('0x2f')])[_0xb953('0x22')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x1e242c[_0xb953('0x10')]&&!_0x1e242c[_0xb953('0x14')]){var _0x56e8a2=_[_0xb953('0x30')](_0x1e242c['attachments'],{'contentType':_0xb953('0x31')});if(_0x56e8a2[_0xb953('0xa')]){logger[_0xb953('0x32')](util[_0xb953('0x22')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x1e242c['messageId']));tnef['parseBuffer'](_['first'](_0x56e8a2)['content'],function(_0x252353,_0x3cc983){if(_0x3cc983){_0x1e242c[_0xb953('0x10')]=_0x3cc983[_0xb953('0x33')]||_0xb953('0x34');if(_0x3cc983[_0xb953('0x35')]){for(var _0x4fa0d=0x0;_0x4fa0d<_0x3cc983['Attachments']['length'];_0x4fa0d++){var _0x25e8ef=_0x3cc983['Attachments'][_0x4fa0d];_0x3a8b18[_0xb953('0x16')][_0xb953('0x1c')]['push']({'filename':_0x25e8ef[_0xb953('0x36')],'content':new Buffer(_0x25e8ef[_0xb953('0x37')])});}}}_0x322c80(parseEmail(_0x5c8596,_0x1e242c,_0x3a8b18));});}else{_0x1e242c[_0xb953('0x10')]=_0xb953('0x34');_0x322c80(parseEmail(_0x5c8596,_0x1e242c,_0x3a8b18));}}else{_0x322c80(parseEmail(_0x5c8596,_0x1e242c,_0x3a8b18));}};exports[_0xb953('0x38')]=function(_0x14d78d){switch(_0x14d78d){case'gmail':return _0xb953('0x39');case _0xb953('0x3a'):return _0xb953('0x3b');case _0xb953('0x3c'):return _0xb953('0x3d');case _0xb953('0x3e'):return _0xb953('0x3f');}return'127.0.0.1';};