Built motion from commit 10af8726.|2.6.34
[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 _0x3375=['@xcally.com','name','split','length','slice','join','pop','generate','html','test','replace','<img','attachments','push','filename','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','isEmpty','originCc','email','includes','bcc','attach','type','attachment','attachment-','format','%s-%s','now','server/files/attachments/','writeFileSync','content','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','indexOf','line','isAutoreply','parser','from','subject','date','YYYY-MM-DD\x20HH:mm:ss','application/ms-tnef','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','parseBuffer','first','<p>Empty\x20message</p>','Attachments','Title','Data','generateXOAuth2Token','user=','auth=Bearer\x20','utf-8','toString','util','../../../config/environment','head','value','address','anonymous'];(function(_0x2da5df,_0x4a8630){var _0x49c63e=function(_0x3d6f6e){while(--_0x3d6f6e){_0x2da5df['push'](_0x2da5df['shift']());}};_0x49c63e(++_0x4a8630);}(_0x3375,0x158));var _0x5337=function(_0x24b289,_0x383d1f){_0x24b289=_0x24b289-0x0;var _0x35af0f=_0x3375[_0x24b289];return _0x35af0f;};'use strict';var _=require('lodash');var moment=require('moment');var random=require('randomstring');var fs=require('fs');var path=require('path');var util=require(_0x5337('0x0'));var tnef=require('node-tnef');var logger=require('../../../config/logger')('email');var config=require(_0x5337('0x1'));function getAddress(_0x13d105){var _0x7bc8a0=_[_0x5337('0x2')](_0x13d105[_0x5337('0x3')]);return _0x7bc8a0&&_0x7bc8a0[_0x5337('0x4')]?_0x7bc8a0['address']:_0x5337('0x5')+random['generate'](0x6)+_0x5337('0x6');}function getFirstName(_0x392dc3){var _0x48cb10=_[_0x5337('0x2')](_0x392dc3['value']);if(_0x48cb10&&_0x48cb10['name']){if(_0x48cb10['name']==_0x48cb10[_0x5337('0x4')]){return _0x48cb10[_0x5337('0x7')]['substring'](0x0,_0x48cb10[_0x5337('0x7')]['indexOf']('@'));}var _0x3d1ccc=_0x48cb10[_0x5337('0x7')][_0x5337('0x8')](/\s+/);return _0x3d1ccc[_0x5337('0x9')]>0x1?_0x3d1ccc[_0x5337('0xa')](0x0,-0x1)[_0x5337('0xb')]('\x20'):_0x48cb10[_0x5337('0x7')];}return'Anonymous';}function getLastName(_0x284270){var _0x15b447=_['head'](_0x284270[_0x5337('0x3')]);if(_0x15b447&&_0x15b447[_0x5337('0x7')]){var _0x524320=_0x15b447[_0x5337('0x7')][_0x5337('0x8')](/\s+/);return _0x524320['length']>0x1?_0x524320[_0x5337('0xc')]():'';}return'';}function getMails(_0x4aa4e0,_0x228041){var _0x35129b='';for(var _0x554588=0x0;_0x554588<_0x228041[_0x5337('0x3')][_0x5337('0x9')];_0x554588+=0x1){if(_0x228041['value'][_0x554588][_0x5337('0x4')]!==_0x4aa4e0){if(!_['isEmpty'](_0x35129b)){_0x35129b+=',';}_0x35129b+=_0x228041[_0x5337('0x3')][_0x554588][_0x5337('0x7')]||_0x228041['value'][_0x554588][_0x5337('0x4')]||'';_0x35129b+='\x20<';_0x35129b+=_0x228041[_0x5337('0x3')][_0x554588]['address']?_0x228041[_0x5337('0x3')][_0x554588][_0x5337('0x4')]:_0x5337('0x5')+random[_0x5337('0xd')](0x6)+_0x5337('0x6');_0x35129b+='>';}}return _0x35129b;}function parseEmail(_0x4dc987,_0x3e62fd,_0x3f511){if(_0x3e62fd[_0x5337('0xe')]){var _0x1b5bc0=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x1b5bc0[_0x5337('0xf')](_0x3e62fd[_0x5337('0xe')])){_0x3e62fd[_0x5337('0xe')]=_0x3e62fd[_0x5337('0xe')][_0x5337('0x10')](_0x1b5bc0,'');}if(_0x3e62fd[_0x5337('0xe')]['includes'](_0x5337('0x11'))){var _0x55e5bb=[];_0x3e62fd[_0x5337('0x12')]['forEach'](_0x8f2ac0=>{_0x55e5bb[_0x5337('0x13')](_0x8f2ac0[_0x5337('0x14')]);});var _0x299f3e=/<img.*? _SRC(.*?)[^>]+>/g;var _0x5b80cb=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x2f19f7=_0x3e62fd[_0x5337('0xe')][_0x5337('0x10')](_0x5b80cb,'_SRC');var _0x8d7ef6=_0x2f19f7[_0x5337('0x10')](_0x299f3e,_0x5337('0x15'));for(let _0x33b312=0x0;_0x33b312<_0x55e5bb['length'];_0x33b312++){var _0x3f06b5=_0x8d7ef6['replace']('_IMG',_0x5337('0x16')+_0x55e5bb[_0x33b312]+_0x5337('0x17'));_0x8d7ef6=_0x3f06b5;}_0x3e62fd['html']=_0x8d7ef6;}_0x3f511[_0x5337('0x18')]=_0x3e62fd[_0x5337('0xe')];}else{_0x3f511['body']=_0x3e62fd[_0x5337('0x19')];}if(_0x3f511[_0x5337('0x18')]){_0x3f511[_0x5337('0x18')]=_0x3f511[_0x5337('0x18')][_0x5337('0x10')](/<a\s+/gi,_0x5337('0x1a'));}if(_0x3e62fd['to']){_0x3f511[_0x5337('0x1b')]['originTo']=getMails(null,_0x3e62fd['to']);var _0x4cc64f=getMails(_0x4dc987['email'],_0x3e62fd['to']);if(!_[_0x5337('0x1c')](_0x4cc64f)){_0x3f511[_0x5337('0x1b')]['cc']+=_0x4cc64f;}}if(_0x3e62fd['cc']){_0x3f511[_0x5337('0x1b')][_0x5337('0x1d')]=getMails(null,_0x3e62fd['cc']);var _0x2a48c4=getMails(_0x4dc987[_0x5337('0x1e')],_0x3e62fd['cc']);if(!_['isEmpty'](_0x2a48c4)){if(!_[_0x5337('0x1c')](_0x3f511['message']['cc'])){_0x3f511['message']['cc']+=',';}_0x3f511[_0x5337('0x1b')]['cc']+=_0x2a48c4;}}if(!_[_0x5337('0x1f')](_0x3f511[_0x5337('0x1b')]['originTo'],_0x4dc987['email'])&&!_[_0x5337('0x1f')](_0x3f511['message']['originCc'],_0x4dc987[_0x5337('0x1e')])){_0x3f511[_0x5337('0x1b')][_0x5337('0x20')]=_0x4dc987[_0x5337('0x1e')];}if(_0x3e62fd['attachments']&&_0x3e62fd[_0x5337('0x12')][_0x5337('0x9')]){_0x3f511[_0x5337('0x1b')][_0x5337('0x21')]=_0x3e62fd[_0x5337('0x12')][_0x5337('0x9')];for(var _0x2eb389=0x0,_0x51699b,_0xa40325,_0x2385c2;_0x2eb389<_0x3e62fd[_0x5337('0x12')][_0x5337('0x9')];_0x2eb389+=0x1){if(_0x3e62fd[_0x5337('0x12')][_0x2eb389][_0x5337('0x22')]===_0x5337('0x23')){_0x2385c2=_0x3e62fd['attachments'][_0x2eb389][_0x5337('0x14')]||_0x5337('0x24')+_0x2eb389;_0x51699b=util[_0x5337('0x25')](_0x5337('0x26'),Date[_0x5337('0x27')](),_0x2385c2);_0xa40325=path[_0x5337('0xb')](config['root'],_0x5337('0x28'),_0x51699b);fs[_0x5337('0x29')](_0xa40325,_0x3e62fd[_0x5337('0x12')][_0x2eb389][_0x5337('0x2a')]);_0x3f511[_0x5337('0x1b')][_0x5337('0x12')][_0x5337('0x13')]({'name':_0x2385c2,'basename':_0x51699b,'type':_0x3e62fd[_0x5337('0x12')][_0x2eb389][_0x5337('0x2b')],'filepath':_0xa40325});}}}if(_0x3e62fd[_0x5337('0x2c')]&&_0x3e62fd[_0x5337('0x2c')][_0x5337('0x9')]>0x0){var _0xf76d3=[_0x5337('0x2d'),_0x5337('0x2e'),'Precedence:\x20auto_reply'];for(var _0x4b0def=0x0;_0x4b0def<_0x3e62fd[_0x5337('0x2c')]['length'];_0x4b0def++){var _0x3d1d19=_[_0x5337('0x2f')](_0xf76d3,_0x3e62fd[_0x5337('0x2c')][_0x4b0def][_0x5337('0x30')]);if(_0x3d1d19>=0x0){_0x3f511[_0x5337('0x31')]=!![];}}}return _0x3f511;}exports[_0x5337('0x32')]=function(_0x1c9281,_0x21a844,_0x332ea4){var _0x362b83={'from':getAddress(_0x21a844[_0x5337('0x33')]),'firstName':getFirstName(_0x21a844[_0x5337('0x33')]),'lastName':getLastName(_0x21a844[_0x5337('0x33')]),'mapKey':'email','message':{'from':getMails(_0x1c9281['email'],_0x21a844[_0x5337('0x33')]),'to':_0x1c9281[_0x5337('0x1e')],'cc':'','subject':_0x21a844[_0x5337('0x34')]||'','messageId':_0x21a844['messageId'],'inReplyTo':_0x21a844['inReplyTo'],'sentAt':moment(_0x21a844[_0x5337('0x35')])[_0x5337('0x25')](_0x5337('0x36')),'attach':![],'attachments':[]}};if(!_0x21a844[_0x5337('0xe')]&&!_0x21a844[_0x5337('0x19')]){var _0x3cd181=_['filter'](_0x21a844[_0x5337('0x12')],{'contentType':_0x5337('0x37')});if(_0x3cd181['length']){logger[_0x5337('0x38')](util[_0x5337('0x25')](_0x5337('0x39'),_0x21a844[_0x5337('0x3a')]));tnef[_0x5337('0x3b')](_[_0x5337('0x3c')](_0x3cd181)[_0x5337('0x2a')],function(_0x2db8de,_0x4a075f){if(_0x4a075f){_0x21a844['html']=_0x4a075f['BodyHTML']||_0x5337('0x3d');if(_0x4a075f[_0x5337('0x3e')]){for(var _0x1d5e50=0x0;_0x1d5e50<_0x4a075f[_0x5337('0x3e')][_0x5337('0x9')];_0x1d5e50++){var _0x99a56d=_0x4a075f[_0x5337('0x3e')][_0x1d5e50];_0x362b83[_0x5337('0x1b')][_0x5337('0x12')][_0x5337('0x13')]({'filename':_0x99a56d[_0x5337('0x3f')],'content':Buffer[_0x5337('0x33')](_0x99a56d[_0x5337('0x40')])});}}}_0x332ea4(parseEmail(_0x1c9281,_0x21a844,_0x362b83));});}else{_0x21a844[_0x5337('0xe')]=_0x5337('0x3d');_0x332ea4(parseEmail(_0x1c9281,_0x21a844,_0x362b83));}}else{_0x332ea4(parseEmail(_0x1c9281,_0x21a844,_0x362b83));}};exports[_0x5337('0x41')]=function(_0x105f8c,_0x560394){var _0x428246=[_0x5337('0x42')+(_0x560394||''),_0x5337('0x43')+_0x105f8c,'',''];return Buffer[_0x5337('0x33')](_0x428246[_0x5337('0xb')]('\ 1'),_0x5337('0x44'))[_0x5337('0x45')]('base64');};