Built motion from commit (unavailable).|2.5.1
[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 _0xd51b=['subject','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','info','format','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','content','Attachments','push','Data','getHost','gmail','yahoo','imap.mail.yahoo.com','hotmail','outlook365','outlook.office365.com','lodash','moment','util','../../../config/logger','../../../config/environment','head','value','address','anonymous','@xcally.com','name','split','length','slice','join','Anonymous','pop','isEmpty','generate','html','test','replace','textAsHtml','body','message','originTo','email','originCc','includes','attachments','attach','type','attachment','filename','attachment-','root','server/files/attachments/','parser','from'];(function(_0xf35305,_0x47c026){var _0x167505=function(_0x18c9d7){while(--_0x18c9d7){_0xf35305['push'](_0xf35305['shift']());}};_0x167505(++_0x47c026);}(_0xd51b,0x100));var _0xbd51=function(_0x5770bc,_0x3c137f){_0x5770bc=_0x5770bc-0x0;var _0x4e5860=_0xd51b[_0x5770bc];return _0x4e5860;};'use strict';var _=require(_0xbd51('0x0'));var moment=require(_0xbd51('0x1'));var random=require('randomstring');var fs=require('fs');var path=require('path');var util=require(_0xbd51('0x2'));var tnef=require('node-tnef');var logger=require(_0xbd51('0x3'))('email');var config=require(_0xbd51('0x4'));function getAddress(_0x11e7ee){var _0x5c9fcf=_[_0xbd51('0x5')](_0x11e7ee[_0xbd51('0x6')]);return _0x5c9fcf&&_0x5c9fcf[_0xbd51('0x7')]?_0x5c9fcf[_0xbd51('0x7')]:_0xbd51('0x8')+random['generate'](0x6)+_0xbd51('0x9');}function getFirstName(_0x612a91){var _0x2c9bf3=_[_0xbd51('0x5')](_0x612a91['value']);if(_0x2c9bf3&&_0x2c9bf3[_0xbd51('0xa')]){var _0x1b7b16=_0x2c9bf3[_0xbd51('0xa')][_0xbd51('0xb')](/\s+/);return _0x1b7b16[_0xbd51('0xc')]?_0x1b7b16[_0xbd51('0xd')](0x0,-0x1)[_0xbd51('0xe')]('\x20'):_0x2c9bf3[_0xbd51('0xa')];}return _0xbd51('0xf');}function getLastName(_0x4e6900){var _0x175059=_['head'](_0x4e6900[_0xbd51('0x6')]);if(_0x175059&&_0x175059[_0xbd51('0xa')]){var _0x3e85b1=_0x175059['name'][_0xbd51('0xb')](/\s+/);return _0x3e85b1[_0xbd51('0xc')]>0x1?_0x3e85b1[_0xbd51('0x10')]():'';}return'';}function getMails(_0xb1c553,_0x1be0ec){var _0xe6f02b='';for(var _0x3ebca4=0x0;_0x3ebca4<_0x1be0ec[_0xbd51('0x6')][_0xbd51('0xc')];_0x3ebca4+=0x1){if(_0x1be0ec['value'][_0x3ebca4][_0xbd51('0x7')]!==_0xb1c553){if(!_[_0xbd51('0x11')](_0xe6f02b)){_0xe6f02b+=',';}_0xe6f02b+=_0x1be0ec[_0xbd51('0x6')][_0x3ebca4][_0xbd51('0xa')]||_0x1be0ec[_0xbd51('0x6')][_0x3ebca4][_0xbd51('0x7')]||'';_0xe6f02b+='\x20<';_0xe6f02b+=_0x1be0ec[_0xbd51('0x6')][_0x3ebca4][_0xbd51('0x7')]?_0x1be0ec[_0xbd51('0x6')][_0x3ebca4][_0xbd51('0x7')]:_0xbd51('0x8')+random[_0xbd51('0x12')](0x6)+_0xbd51('0x9');_0xe6f02b+='>';}}return _0xe6f02b;}function parseEmail(_0x21ac5d,_0x3d1cdf,_0x32d67d){if(_0x3d1cdf[_0xbd51('0x13')]){var _0x578bb0=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x578bb0[_0xbd51('0x14')](_0x3d1cdf[_0xbd51('0x13')])){_0x3d1cdf[_0xbd51('0x13')]=_0x3d1cdf[_0xbd51('0x13')][_0xbd51('0x15')](_0x578bb0,'');}_0x32d67d['body']=_0x3d1cdf[_0xbd51('0x13')];}else{_0x32d67d['body']=_0x3d1cdf[_0xbd51('0x16')];}if(_0x32d67d[_0xbd51('0x17')]){_0x32d67d[_0xbd51('0x17')]=_0x32d67d[_0xbd51('0x17')][_0xbd51('0x15')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x3d1cdf['to']){_0x32d67d[_0xbd51('0x18')][_0xbd51('0x19')]=getMails(null,_0x3d1cdf['to']);var _0x281d93=getMails(_0x21ac5d[_0xbd51('0x1a')],_0x3d1cdf['to']);if(!_[_0xbd51('0x11')](_0x281d93)){_0x32d67d[_0xbd51('0x18')]['cc']+=_0x281d93;}}if(_0x3d1cdf['cc']){_0x32d67d['message'][_0xbd51('0x1b')]=getMails(null,_0x3d1cdf['cc']);var _0x50f419=getMails(_0x21ac5d[_0xbd51('0x1a')],_0x3d1cdf['cc']);if(!_[_0xbd51('0x11')](_0x50f419)){if(!_[_0xbd51('0x11')](_0x32d67d[_0xbd51('0x18')]['cc'])){_0x32d67d[_0xbd51('0x18')]['cc']+=',';}_0x32d67d[_0xbd51('0x18')]['cc']+=_0x50f419;}}if(!_[_0xbd51('0x1c')](_0x32d67d[_0xbd51('0x18')][_0xbd51('0x19')],_0x21ac5d[_0xbd51('0x1a')])&&!_[_0xbd51('0x1c')](_0x32d67d[_0xbd51('0x18')][_0xbd51('0x1b')],_0x21ac5d[_0xbd51('0x1a')])){_0x32d67d[_0xbd51('0x18')]['bcc']=_0x21ac5d[_0xbd51('0x1a')];}if(_0x3d1cdf[_0xbd51('0x1d')]&&_0x3d1cdf[_0xbd51('0x1d')]['length']){_0x32d67d[_0xbd51('0x18')][_0xbd51('0x1e')]=_0x3d1cdf['attachments'][_0xbd51('0xc')];for(var _0x30a100=0x0,_0x91d326,_0x59999a,_0x53be9a;_0x30a100<_0x3d1cdf['attachments']['length'];_0x30a100+=0x1){if(_0x3d1cdf[_0xbd51('0x1d')][_0x30a100][_0xbd51('0x1f')]===_0xbd51('0x20')){_0x53be9a=_0x3d1cdf[_0xbd51('0x1d')][_0x30a100][_0xbd51('0x21')]||_0xbd51('0x22')+_0x30a100;_0x91d326=util['format']('%s-%s',Date['now'](),_0x53be9a);_0x59999a=path['join'](config[_0xbd51('0x23')],_0xbd51('0x24'),_0x91d326);fs['writeFileSync'](_0x59999a,_0x3d1cdf[_0xbd51('0x1d')][_0x30a100]['content']);_0x32d67d['message'][_0xbd51('0x1d')]['push']({'name':_0x53be9a,'basename':_0x91d326,'type':_0x3d1cdf[_0xbd51('0x1d')][_0x30a100]['contentType'],'filepath':_0x59999a});}}}return _0x32d67d;}exports[_0xbd51('0x25')]=function(_0x2f95d7,_0xd53d7d,_0x1128c7){var _0x2054cb={'from':getAddress(_0xd53d7d[_0xbd51('0x26')]),'firstName':getFirstName(_0xd53d7d['from']),'lastName':getLastName(_0xd53d7d[_0xbd51('0x26')]),'mapKey':_0xbd51('0x1a'),'message':{'from':getMails(_0x2f95d7[_0xbd51('0x1a')],_0xd53d7d[_0xbd51('0x26')]),'to':_0x2f95d7[_0xbd51('0x1a')],'cc':'','subject':_0xd53d7d[_0xbd51('0x27')]||'','messageId':_0xd53d7d['messageId'],'inReplyTo':_0xd53d7d[_0xbd51('0x28')],'sentAt':moment(_0xd53d7d[_0xbd51('0x29')])['format'](_0xbd51('0x2a')),'attach':![],'attachments':[]}};if(!_0xd53d7d['html']&&!_0xd53d7d['textAsHtml']){var _0x5b10e7=_['filter'](_0xd53d7d[_0xbd51('0x1d')],{'contentType':_0xbd51('0x2b')});if(_0x5b10e7[_0xbd51('0xc')]){logger[_0xbd51('0x2c')](util[_0xbd51('0x2d')](_0xbd51('0x2e'),_0xd53d7d['messageId']));tnef[_0xbd51('0x2f')](_['first'](_0x5b10e7)[_0xbd51('0x30')],function(_0x391b23,_0x52dc4a){if(_0x52dc4a){_0xd53d7d['html']=_0x52dc4a['BodyHTML']||'<p>Empty\x20message</p>';if(_0x52dc4a['Attachments']){for(var _0x4faf11=0x0;_0x4faf11<_0x52dc4a['Attachments'][_0xbd51('0xc')];_0x4faf11++){var _0x73748b=_0x52dc4a[_0xbd51('0x31')][_0x4faf11];_0x2054cb[_0xbd51('0x18')][_0xbd51('0x1d')][_0xbd51('0x32')]({'filename':_0x73748b['Title'],'content':new Buffer(_0x73748b[_0xbd51('0x33')])});}}}_0x1128c7(parseEmail(_0x2f95d7,_0xd53d7d,_0x2054cb));});}else{_0xd53d7d[_0xbd51('0x13')]='<p>Empty\x20message</p>';_0x1128c7(parseEmail(_0x2f95d7,_0xd53d7d,_0x2054cb));}}else{_0x1128c7(parseEmail(_0x2f95d7,_0xd53d7d,_0x2054cb));}};exports[_0xbd51('0x34')]=function(_0x567d23){switch(_0x567d23){case _0xbd51('0x35'):return'imap.gmail.com';case _0xbd51('0x36'):return _0xbd51('0x37');case _0xbd51('0x38'):return'imap-mail.outlook.com';case _0xbd51('0x39'):return _0xbd51('0x3a');}return'127.0.0.1';};