Built motion from commit (unavailable).|2.5.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 _0x95d0=['value','address','generate','name','slice','Anonymous','split','pop','length','isEmpty','anonymous','@xcally.com','html','replace','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','includes','bcc','attachments','attach','type','attachment','filename','attachment-','format','%s-%s','now','join','root','content','push','contentType','parser','from','inReplyTo','date','filter','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','getHost','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook.office365.com','127.0.0.1','lodash','moment','randomstring','util','../../../config/logger','email','../../../config/environment','head'];(function(_0x1d9aa0,_0x272488){var _0x226868=function(_0x17127c){while(--_0x17127c){_0x1d9aa0['push'](_0x1d9aa0['shift']());}};_0x226868(++_0x272488);}(_0x95d0,0x18a));var _0x095d=function(_0xb39bba,_0x385941){_0xb39bba=_0xb39bba-0x0;var _0x5c467b=_0x95d0[_0xb39bba];return _0x5c467b;};'use strict';var _=require(_0x095d('0x0'));var moment=require(_0x095d('0x1'));var random=require(_0x095d('0x2'));var fs=require('fs');var path=require('path');var util=require(_0x095d('0x3'));var tnef=require('node-tnef');var logger=require(_0x095d('0x4'))(_0x095d('0x5'));var config=require(_0x095d('0x6'));function getAddress(_0x348039){var _0x430e98=_[_0x095d('0x7')](_0x348039[_0x095d('0x8')]);return _0x430e98&&_0x430e98[_0x095d('0x9')]?_0x430e98['address']:'anonymous'+random[_0x095d('0xa')](0x6)+'@xcally.com';}function getFirstName(_0x2dd59a){var _0x200f13=_[_0x095d('0x7')](_0x2dd59a[_0x095d('0x8')]);if(_0x200f13&&_0x200f13[_0x095d('0xb')]){var _0x57e0f4=_0x200f13[_0x095d('0xb')]['split'](/\s+/);return _0x57e0f4['length']?_0x57e0f4[_0x095d('0xc')](0x0,-0x1)['join']('\x20'):_0x200f13[_0x095d('0xb')];}return _0x095d('0xd');}function getLastName(_0x3143c5){var _0x894430=_[_0x095d('0x7')](_0x3143c5['value']);if(_0x894430&&_0x894430[_0x095d('0xb')]){var _0x43eccc=_0x894430[_0x095d('0xb')][_0x095d('0xe')](/\s+/);return _0x43eccc['length']>0x1?_0x43eccc[_0x095d('0xf')]():'';}return'';}function getMails(_0x204bfd,_0x584460){var _0x770ed2='';for(var _0x3f2b04=0x0;_0x3f2b04<_0x584460['value'][_0x095d('0x10')];_0x3f2b04+=0x1){if(_0x584460[_0x095d('0x8')][_0x3f2b04][_0x095d('0x9')]!==_0x204bfd){if(!_[_0x095d('0x11')](_0x770ed2)){_0x770ed2+=',';}_0x770ed2+=_0x584460[_0x095d('0x8')][_0x3f2b04][_0x095d('0xb')]||_0x584460[_0x095d('0x8')][_0x3f2b04][_0x095d('0x9')]||'';_0x770ed2+='\x20<';_0x770ed2+=_0x584460[_0x095d('0x8')][_0x3f2b04][_0x095d('0x9')]?_0x584460[_0x095d('0x8')][_0x3f2b04][_0x095d('0x9')]:_0x095d('0x12')+random[_0x095d('0xa')](0x6)+_0x095d('0x13');_0x770ed2+='>';}}return _0x770ed2;}function parseEmail(_0x58c2e2,_0x1b2065,_0x3fe113){if(_0x1b2065[_0x095d('0x14')]){var _0x5bde2e=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x5bde2e['test'](_0x1b2065[_0x095d('0x14')])){_0x1b2065[_0x095d('0x14')]=_0x1b2065[_0x095d('0x14')][_0x095d('0x15')](_0x5bde2e,'');}_0x3fe113['body']=_0x1b2065[_0x095d('0x14')];}else{_0x3fe113[_0x095d('0x16')]=_0x1b2065[_0x095d('0x17')];}if(_0x3fe113[_0x095d('0x16')]){_0x3fe113[_0x095d('0x16')]=_0x3fe113[_0x095d('0x16')][_0x095d('0x15')](/<a\s+/gi,_0x095d('0x18'));}if(_0x1b2065['to']){_0x3fe113[_0x095d('0x19')][_0x095d('0x1a')]=getMails(null,_0x1b2065['to']);var _0x35457b=getMails(_0x58c2e2[_0x095d('0x5')],_0x1b2065['to']);if(!_[_0x095d('0x11')](_0x35457b)){_0x3fe113['message']['cc']+=_0x35457b;}}if(_0x1b2065['cc']){_0x3fe113[_0x095d('0x19')][_0x095d('0x1b')]=getMails(null,_0x1b2065['cc']);var _0x32d83f=getMails(_0x58c2e2['email'],_0x1b2065['cc']);if(!_[_0x095d('0x11')](_0x32d83f)){if(!_[_0x095d('0x11')](_0x3fe113[_0x095d('0x19')]['cc'])){_0x3fe113['message']['cc']+=',';}_0x3fe113['message']['cc']+=_0x32d83f;}}if(!_['includes'](_0x3fe113['message'][_0x095d('0x1a')],_0x58c2e2[_0x095d('0x5')])&&!_[_0x095d('0x1c')](_0x3fe113[_0x095d('0x19')][_0x095d('0x1b')],_0x58c2e2[_0x095d('0x5')])){_0x3fe113[_0x095d('0x19')][_0x095d('0x1d')]=_0x58c2e2[_0x095d('0x5')];}if(_0x1b2065[_0x095d('0x1e')]&&_0x1b2065[_0x095d('0x1e')][_0x095d('0x10')]){_0x3fe113['message'][_0x095d('0x1f')]=_0x1b2065[_0x095d('0x1e')][_0x095d('0x10')];for(var _0x1a3a3d=0x0,_0x1ad02d,_0x13fd8b,_0x1f675c;_0x1a3a3d<_0x1b2065[_0x095d('0x1e')]['length'];_0x1a3a3d+=0x1){if(_0x1b2065[_0x095d('0x1e')][_0x1a3a3d][_0x095d('0x20')]===_0x095d('0x21')){_0x1f675c=_0x1b2065[_0x095d('0x1e')][_0x1a3a3d][_0x095d('0x22')]||_0x095d('0x23')+_0x1a3a3d;_0x1ad02d=util[_0x095d('0x24')](_0x095d('0x25'),Date[_0x095d('0x26')](),_0x1f675c);_0x13fd8b=path[_0x095d('0x27')](config[_0x095d('0x28')],'server/files/attachments/',_0x1ad02d);fs['writeFileSync'](_0x13fd8b,_0x1b2065[_0x095d('0x1e')][_0x1a3a3d][_0x095d('0x29')]);_0x3fe113[_0x095d('0x19')][_0x095d('0x1e')][_0x095d('0x2a')]({'name':_0x1f675c,'basename':_0x1ad02d,'type':_0x1b2065['attachments'][_0x1a3a3d][_0x095d('0x2b')],'filepath':_0x13fd8b});}}}return _0x3fe113;}exports[_0x095d('0x2c')]=function(_0x415e5d,_0x405c74,_0x224913){var _0x40fd8c={'from':getAddress(_0x405c74[_0x095d('0x2d')]),'firstName':getFirstName(_0x405c74[_0x095d('0x2d')]),'lastName':getLastName(_0x405c74[_0x095d('0x2d')]),'mapKey':'email','message':{'from':getMails(_0x415e5d[_0x095d('0x5')],_0x405c74[_0x095d('0x2d')]),'to':_0x415e5d[_0x095d('0x5')],'cc':'','subject':_0x405c74['subject']||'','messageId':_0x405c74['messageId'],'inReplyTo':_0x405c74[_0x095d('0x2e')],'sentAt':moment(_0x405c74[_0x095d('0x2f')])['format']('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x405c74[_0x095d('0x14')]&&!_0x405c74[_0x095d('0x17')]){var _0x31c3b2=_[_0x095d('0x30')](_0x405c74[_0x095d('0x1e')],{'contentType':_0x095d('0x31')});if(_0x31c3b2[_0x095d('0x10')]){logger[_0x095d('0x32')](util[_0x095d('0x24')](_0x095d('0x33'),_0x405c74[_0x095d('0x34')]));tnef[_0x095d('0x35')](_[_0x095d('0x36')](_0x31c3b2)[_0x095d('0x29')],function(_0x1b2baf,_0x182599){if(_0x182599){_0x405c74[_0x095d('0x14')]=_0x182599[_0x095d('0x37')]||_0x095d('0x38');if(_0x182599[_0x095d('0x39')]){for(var _0x2c9d1e=0x0;_0x2c9d1e<_0x182599[_0x095d('0x39')][_0x095d('0x10')];_0x2c9d1e++){var _0x4e315a=_0x182599[_0x095d('0x39')][_0x2c9d1e];_0x40fd8c[_0x095d('0x19')]['attachments'][_0x095d('0x2a')]({'filename':_0x4e315a['Title'],'content':new Buffer(_0x4e315a['Data'])});}}}_0x224913(parseEmail(_0x415e5d,_0x405c74,_0x40fd8c));});}else{_0x405c74[_0x095d('0x14')]=_0x095d('0x38');_0x224913(parseEmail(_0x415e5d,_0x405c74,_0x40fd8c));}}else{_0x224913(parseEmail(_0x415e5d,_0x405c74,_0x40fd8c));}};exports[_0x095d('0x3a')]=function(_0x131db3){switch(_0x131db3){case _0x095d('0x3b'):return _0x095d('0x3c');case _0x095d('0x3d'):return _0x095d('0x3e');case _0x095d('0x3f'):return _0x095d('0x40');case'outlook365':return _0x095d('0x41');}return _0x095d('0x42');};