Built motion from commit f7863d46.|2.5.41
[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 _0x43e5=['first','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','gmail','yahoo','imap.mail.yahoo.com','hotmail','outlook365','outlook.office365.com','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','base64','lodash','path','../../../config/logger','email','head','address','anonymous','name','substring','indexOf','split','length','slice','join','value','isEmpty','generate','@xcally.com','html','replace','includes','attachments','forEach','push','filename','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','bcc','attach','type','attachment','attachment-','%s-%s','root','writeFileSync','content','headerLines','X-Auto-Response-Suppress:\x20All','line','parser','from','subject','inReplyTo','date','format','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','info','messageId'];(function(_0x37bd26,_0x5ad346){var _0xe83dc4=function(_0x1ac229){while(--_0x1ac229){_0x37bd26['push'](_0x37bd26['shift']());}};_0xe83dc4(++_0x5ad346);}(_0x43e5,0x13a));var _0x543e=function(_0x4c3ecb,_0x56292b){_0x4c3ecb=_0x4c3ecb-0x0;var _0x3649b6=_0x43e5[_0x4c3ecb];return _0x3649b6;};'use strict';var _=require(_0x543e('0x0'));var moment=require('moment');var random=require('randomstring');var fs=require('fs');var path=require(_0x543e('0x1'));var util=require('util');var tnef=require('node-tnef');var logger=require(_0x543e('0x2'))(_0x543e('0x3'));var config=require('../../../config/environment');function getAddress(_0x514328){var _0x4c859f=_[_0x543e('0x4')](_0x514328['value']);return _0x4c859f&&_0x4c859f['address']?_0x4c859f[_0x543e('0x5')]:_0x543e('0x6')+random['generate'](0x6)+'@xcally.com';}function getFirstName(_0x5ab972){var _0x36dee8=_[_0x543e('0x4')](_0x5ab972['value']);if(_0x36dee8&&_0x36dee8[_0x543e('0x7')]){if(_0x36dee8['name']==_0x36dee8['address']){return _0x36dee8[_0x543e('0x7')][_0x543e('0x8')](0x0,_0x36dee8[_0x543e('0x7')][_0x543e('0x9')]('@'));}var _0x3356d5=_0x36dee8['name'][_0x543e('0xa')](/\s+/);return _0x3356d5[_0x543e('0xb')]>0x1?_0x3356d5[_0x543e('0xc')](0x0,-0x1)[_0x543e('0xd')]('\x20'):_0x36dee8[_0x543e('0x7')];}return'Anonymous';}function getLastName(_0x5d0e5c){var _0x2689c5=_[_0x543e('0x4')](_0x5d0e5c[_0x543e('0xe')]);if(_0x2689c5&&_0x2689c5[_0x543e('0x7')]){var _0x394377=_0x2689c5[_0x543e('0x7')]['split'](/\s+/);return _0x394377[_0x543e('0xb')]>0x1?_0x394377['pop']():'';}return'';}function getMails(_0x5e43e7,_0x22a23f){var _0x239524='';for(var _0x3a19f5=0x0;_0x3a19f5<_0x22a23f[_0x543e('0xe')][_0x543e('0xb')];_0x3a19f5+=0x1){if(_0x22a23f[_0x543e('0xe')][_0x3a19f5][_0x543e('0x5')]!==_0x5e43e7){if(!_[_0x543e('0xf')](_0x239524)){_0x239524+=',';}_0x239524+=_0x22a23f[_0x543e('0xe')][_0x3a19f5][_0x543e('0x7')]||_0x22a23f['value'][_0x3a19f5][_0x543e('0x5')]||'';_0x239524+='\x20<';_0x239524+=_0x22a23f[_0x543e('0xe')][_0x3a19f5]['address']?_0x22a23f[_0x543e('0xe')][_0x3a19f5][_0x543e('0x5')]:_0x543e('0x6')+random[_0x543e('0x10')](0x6)+_0x543e('0x11');_0x239524+='>';}}return _0x239524;}function parseEmail(_0x5eb29a,_0xc32d1c,_0x39deac){if(_0xc32d1c[_0x543e('0x12')]){var _0xa06cb0=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0xa06cb0['test'](_0xc32d1c['html'])){_0xc32d1c[_0x543e('0x12')]=_0xc32d1c[_0x543e('0x12')][_0x543e('0x13')](_0xa06cb0,'');}if(_0xc32d1c[_0x543e('0x12')][_0x543e('0x14')]('<img')){var _0xc2d7eb=[];_0xc32d1c[_0x543e('0x15')][_0x543e('0x16')](_0xc8a9a8=>{_0xc2d7eb[_0x543e('0x17')](_0xc8a9a8[_0x543e('0x18')]);});var _0x51ad7d=/<img.*? _SRC(.*?)[^>]+>/g;var _0x3faaad=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0xffb709=_0xc32d1c[_0x543e('0x12')][_0x543e('0x13')](_0x3faaad,'_SRC');var _0x1079dc=_0xffb709[_0x543e('0x13')](_0x51ad7d,_0x543e('0x19'));for(let _0x4e0858=0x0;_0x4e0858<_0xc2d7eb[_0x543e('0xb')];_0x4e0858++){var _0x4f7779=_0x1079dc['replace']('_IMG',_0x543e('0x1a')+_0xc2d7eb[_0x4e0858]+_0x543e('0x1b'));_0x1079dc=_0x4f7779;}_0xc32d1c[_0x543e('0x12')]=_0x1079dc;}_0x39deac[_0x543e('0x1c')]=_0xc32d1c[_0x543e('0x12')];}else{_0x39deac['body']=_0xc32d1c[_0x543e('0x1d')];}if(_0x39deac[_0x543e('0x1c')]){_0x39deac[_0x543e('0x1c')]=_0x39deac[_0x543e('0x1c')][_0x543e('0x13')](/<a\s+/gi,_0x543e('0x1e'));}if(_0xc32d1c['to']){_0x39deac[_0x543e('0x1f')][_0x543e('0x20')]=getMails(null,_0xc32d1c['to']);var _0x2bc458=getMails(_0x5eb29a[_0x543e('0x3')],_0xc32d1c['to']);if(!_[_0x543e('0xf')](_0x2bc458)){_0x39deac['message']['cc']+=_0x2bc458;}}if(_0xc32d1c['cc']){_0x39deac[_0x543e('0x1f')]['originCc']=getMails(null,_0xc32d1c['cc']);var _0x5af118=getMails(_0x5eb29a[_0x543e('0x3')],_0xc32d1c['cc']);if(!_[_0x543e('0xf')](_0x5af118)){if(!_[_0x543e('0xf')](_0x39deac[_0x543e('0x1f')]['cc'])){_0x39deac[_0x543e('0x1f')]['cc']+=',';}_0x39deac[_0x543e('0x1f')]['cc']+=_0x5af118;}}if(!_[_0x543e('0x14')](_0x39deac[_0x543e('0x1f')]['originTo'],_0x5eb29a[_0x543e('0x3')])&&!_['includes'](_0x39deac['message'][_0x543e('0x21')],_0x5eb29a[_0x543e('0x3')])){_0x39deac[_0x543e('0x1f')][_0x543e('0x22')]=_0x5eb29a[_0x543e('0x3')];}if(_0xc32d1c['attachments']&&_0xc32d1c['attachments'][_0x543e('0xb')]){_0x39deac[_0x543e('0x1f')][_0x543e('0x23')]=_0xc32d1c[_0x543e('0x15')]['length'];for(var _0xbfbbbb=0x0,_0x6e8469,_0x250514,_0x2a84dd;_0xbfbbbb<_0xc32d1c[_0x543e('0x15')][_0x543e('0xb')];_0xbfbbbb+=0x1){if(_0xc32d1c[_0x543e('0x15')][_0xbfbbbb][_0x543e('0x24')]===_0x543e('0x25')){_0x2a84dd=_0xc32d1c[_0x543e('0x15')][_0xbfbbbb][_0x543e('0x18')]||_0x543e('0x26')+_0xbfbbbb;_0x6e8469=util['format'](_0x543e('0x27'),Date['now'](),_0x2a84dd);_0x250514=path['join'](config[_0x543e('0x28')],'server/files/attachments/',_0x6e8469);fs[_0x543e('0x29')](_0x250514,_0xc32d1c[_0x543e('0x15')][_0xbfbbbb][_0x543e('0x2a')]);_0x39deac[_0x543e('0x1f')][_0x543e('0x15')][_0x543e('0x17')]({'name':_0x2a84dd,'basename':_0x6e8469,'type':_0xc32d1c[_0x543e('0x15')][_0xbfbbbb]['contentType'],'filepath':_0x250514});}}}if(_0xc32d1c[_0x543e('0x2b')]&&_0xc32d1c['headerLines']['length']>0x0){var _0x595b19=['Auto-Submitted:\x20auto-replied',_0x543e('0x2c'),'Precedence:\x20auto_reply'];for(var _0x141a0d=0x0;_0x141a0d<_0xc32d1c['headerLines'][_0x543e('0xb')];_0x141a0d++){var _0x50dbcd=_[_0x543e('0x9')](_0x595b19,_0xc32d1c['headerLines'][_0x141a0d][_0x543e('0x2d')]);if(_0x50dbcd>=0x0){_0x39deac['isAutoreply']=!![];}}}return _0x39deac;}exports[_0x543e('0x2e')]=function(_0x2d858b,_0x4fde58,_0xb08c6f){var _0x132250={'from':getAddress(_0x4fde58[_0x543e('0x2f')]),'firstName':getFirstName(_0x4fde58[_0x543e('0x2f')]),'lastName':getLastName(_0x4fde58[_0x543e('0x2f')]),'mapKey':_0x543e('0x3'),'message':{'from':getMails(_0x2d858b['email'],_0x4fde58[_0x543e('0x2f')]),'to':_0x2d858b[_0x543e('0x3')],'cc':'','subject':_0x4fde58[_0x543e('0x30')]||'','messageId':_0x4fde58['messageId'],'inReplyTo':_0x4fde58[_0x543e('0x31')],'sentAt':moment(_0x4fde58[_0x543e('0x32')])[_0x543e('0x33')](_0x543e('0x34')),'attach':![],'attachments':[]}};if(!_0x4fde58[_0x543e('0x12')]&&!_0x4fde58[_0x543e('0x1d')]){var _0x4b816c=_['filter'](_0x4fde58[_0x543e('0x15')],{'contentType':_0x543e('0x35')});if(_0x4b816c['length']){logger[_0x543e('0x36')](util[_0x543e('0x33')]('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x4fde58[_0x543e('0x37')]));tnef['parseBuffer'](_[_0x543e('0x38')](_0x4b816c)['content'],function(_0x5c1fa7,_0x25e085){if(_0x25e085){_0x4fde58[_0x543e('0x12')]=_0x25e085['BodyHTML']||_0x543e('0x39');if(_0x25e085[_0x543e('0x3a')]){for(var _0x498aa6=0x0;_0x498aa6<_0x25e085[_0x543e('0x3a')][_0x543e('0xb')];_0x498aa6++){var _0x1c74ce=_0x25e085[_0x543e('0x3a')][_0x498aa6];_0x132250['message'][_0x543e('0x15')][_0x543e('0x17')]({'filename':_0x1c74ce[_0x543e('0x3b')],'content':Buffer['from'](_0x1c74ce[_0x543e('0x3c')])});}}}_0xb08c6f(parseEmail(_0x2d858b,_0x4fde58,_0x132250));});}else{_0x4fde58['html']='<p>Empty\x20message</p>';_0xb08c6f(parseEmail(_0x2d858b,_0x4fde58,_0x132250));}}else{_0xb08c6f(parseEmail(_0x2d858b,_0x4fde58,_0x132250));}};exports[_0x543e('0x3d')]=function(_0x16515a){switch(_0x16515a){case _0x543e('0x3e'):return'imap.gmail.com';case _0x543e('0x3f'):return _0x543e('0x40');case _0x543e('0x41'):return'imap-mail.outlook.com';case _0x543e('0x42'):return _0x543e('0x43');}return'127.0.0.1';};exports[_0x543e('0x44')]=function(_0x2ac017,_0x38a624){var _0x470792=[_0x543e('0x45')+(_0x38a624||''),_0x543e('0x46')+_0x2ac017,'',''];return Buffer[_0x543e('0x2f')](_0x470792[_0x543e('0xd')]('\ 1'),_0x543e('0x47'))[_0x543e('0x48')](_0x543e('0x49'));};