var minisrv_service_file = true; var message_snapshot_data = null; var message_voicemail_data = null; var intro_seen = ssid_sessions[socket.ssid].mailstore.checkMailIntroSeen(); if (!intro_seen && !request_headers.query.intro_seen) { // user is trying to bypass the intro screen headers = "300 OK\nLocation: wtv-mail:/DiplomaMail"; } else { var doClientError = function (msg) { var clientErrorMsg = new clientShowAlert({ 'image': minisrv_config.config.service_logo, 'message': msg, 'buttonlabel1': "Okay", 'buttonaction1': "client:donothing", 'noback': true, }).getURL(); headers = "300 OK\nwtv-visit: " + clientErrorMsg; } if (request_headers.query.clear == "true") { ssid_sessions[socket.ssid].deleteSessionData("mail_draft"); ssid_sessions[socket.ssid].deleteSessionData("mail_draft_attachments"); headers = `300 OK wtv-expire: wtv-mail:/listmail wtv-expire: wtv-mail:/sendmail Location: wtv-mail:/sendmail`; } var to_addr = request_headers.query.message_to || null; var msg_subject = request_headers.query.message_subject || null; var msg_body = request_headers.query.message_body || null; var to_name = request_headers.query.whatever_webtv_sends_this_as || null; var no_signature = false; if (request_headers.query.togglesign == "true") no_signature = false; var mail_draft_data = ssid_sessions[socket.ssid].getSessionData("mail_draft"); var mail_draft_attachments = ssid_sessions[socket.ssid].getSessionData("mail_draft_attachments") || {}; if (mail_draft_data) { ssid_sessions[socket.ssid].deleteSessionData("mail_draft"); to_addr = mail_draft_data.to_addr; msg_subject = mail_draft_data.msg_subject; msg_body = mail_draft_data.msg_body; no_signature = mail_draft_data.no_signature; } if (mail_draft_attachments) { if (mail_draft_attachments.message_snapshot_data) message_snapshot_data = mail_draft_attachments.message_snapshot_data; else if (request_headers.query.message_snapshot_data) message_snapshot_data = request_headers.query.message_snapshot_data; if (mail_draft_attachments.message_voicemail_data) message_voicemail_data = mail_draft_attachments.message_voicemail_data; else if (request_headers.query.message_voicemail_data) message_voicemail_data = request_headers.query.message_voicemail_data; } if (message_snapshot_data && request_headers.query.get_snap) { headers = `200 OK Content-Type: image/jpeg`; data = message_snapshot_data; } else if (message_voicemail_data && request_headers.query.get_gab) { headers = `200 OK Content-Type: audio/wav`; data = message_voicemail_data; } else { var username = ssid_sessions[socket.ssid].getSessionData("subscriber_username"); var userdisplayname = html_entities.encode(ssid_sessions[socket.ssid].getSessionData("subscriber_name")); var address = username + "@" + minisrv_config.config.service_name var notImplementedAlert = new clientShowAlert({ 'image': minisrv_config.config.service_logo, 'message': "This feature is not available.", 'buttonlabel1': "Okay", 'buttonaction1': "client:donothing", 'noback': true, }).getURL(); if (request_headers.query.sendoff == "Send" || request_headers.query.saveoff || request_headers.query.get_snap || request_headers.query.get_gab) { var from_addr = address; var signature = ssid_sessions[socket.ssid].getSessionData("subscriber_signature") || null; if (request_headers.query.sendoff == "Send") { var attachments = []; if (message_snapshot_data) { if (typeof message_snapshot_data == "object") { attachments.push({ 'Content-Type': 'image/jpeg', data: new Buffer.from(message_snapshot_data).toString('base64') }); } else { attachments.push({ 'Content-Type': 'image/jpeg', data: message_snapshot_data }); } } if (message_voicemail_data) { if (typeof message_voicemail_data == "object") { attachments.push({ 'Content-Type': 'audio/wav', data: new Buffer.from(message_voicemail_data).toString('base64') }); } else { attachments.push({ 'Content-Type': 'audio/wav', data: new message_voicemail_data }); } } var messagereturn = ssid_sessions[socket.ssid].mailstore.sendMessageToAddr(from_addr, to_addr, msg_body, msg_subject, userdisplayname, to_name, signature, attachments); if (messagereturn !== true) { var errpage = wtvshared.doErrorPage(400, messagereturn); headers = errpage[0]; data = errpage[1]; } else { ssid_sessions[socket.ssid].deleteSessionData("mail_draft"); ssid_sessions[socket.ssid].deleteSessionData("mail_draft_attachments"); headers = `300 OK wtv-expire: wtv-mail:/listmail wtv-expire: wtv-mail:/sendmail Location: wtv-mail:/listmail`; } } else if (request_headers.query.saveoff) { var mail_draft_data = { to_addr: to_addr, msg_subject: msg_subject, msg_body: msg_body, no_signature: no_signature } ssid_sessions[socket.ssid].setSessionData("mail_draft", mail_draft_data); headers = `200 OK Content-type: text/html wtv-expire: wtv-mail:/sendmail`; } } else { headers = `200 OK Content-type: text/html`; var mail_draft_data = ssid_sessions[socket.ssid].getSessionData("mail_draft_attachments") || {}; if (request_headers.query.snapping == "false") { headers += "\nwtv-expire: cache:snapshot.jpg"; if (mail_draft_data.message_snapshot_data) mail_draft_data.message_snapshot_data = null; ssid_sessions[socket.ssid].setSessionData("mail_draft_attachments", mail_draft_data); } if (request_headers.query.gabbing == "false") { headers += "\nwtv-expire: cache:voicemail.wav"; if (mail_draft_data.message_voicemail_data) mail_draft_data.message_voicemail_data = null; ssid_sessions[socket.ssid].setSessionData("mail_draft_attachments", mail_draft_data); } if (request_headers.query.message_snapshot_data) { mail_draft_data.message_snapshot_data = request_headers.query.message_snapshot_data ssid_sessions[socket.ssid].setSessionData("mail_draft_attachments", mail_draft_data); } if (request_headers.query.message_voicemail_data) { mail_draft_data.message_voicemail_data = request_headers.query.message_voicemail_data ssid_sessions[socket.ssid].setSessionData("mail_draft_attachments", mail_draft_data); } data = ` Write an e-mail message
Mail list
Address
Photo
Recording
Erase
Write an e-mail message

From: 
${address}
(${userdisplayname})
To: 
Subject: 
`; if (ssid_sessions[socket.ssid].getSessionData("subscriber_signature") && ssid_sessions[socket.ssid].getSessionData("subscriber_signature") != "" && !no_signature) { data += ssid_sessions[socket.ssid].mailstore.sanitizeSignature(ssid_sessions[socket.ssid].getSessionData("subscriber_signature")); } data += `

`; if (!ssid_sessions[socket.ssid].getSessionData("subscriber_signature") || ssid_sessions[socket.ssid].getSessionData("subscriber_signature") == "") { data += ` `; } else if (no_signature) { data += `  Add signature 
`; } else { data += `  Remove signature 
`; } data += `
`; if ((request_headers.query.snapping && request_headers.query.snapping !== 'false') || mail_draft_attachments.message_snapshot_data) { data += `
`; if (!mail_draft_attachments.message_snapshot_data) { data += ` `; } data += `
 Detach 
`; } if ((request_headers.query.gabbing && request_headers.query.gabbing !== 'false') || mail_draft_attachments.message_voicemail_data) { data += `
${(!mail_draft_attachments.message_voicemail_data) ? '' : ''}
  Recording  Detach 
`; } data += `
`; } } }