var minisrv_service_file = true; var mailstore_exists = false; function mail_end_error(msg) { var errpage = doErrorPage("400", msg); headers = errpage[0]; data = errpage[1]; } // check if mailstore exists (returns null if guest) mailstore_exists = ssid_sessions[socket.ssid].mailstore.mailstoreExists(); // create mailstore if it doesnt exist (also returns null if guest) if (!mailstore_exists) mailstore_exists = ssid_sessions[socket.ssid].mailstore.createMailstore(); if (mailstore_exists) { // mailstore exists and user is not guest var default_limit = (minisrv_config.services[service_name].messages_per_page) ? minisrv_config.services[service_name].messages_per_page : 25; // user config or 25 var mailbox = (request_headers.query.mailbox) ? parseInt(request_headers.query.mailbox) : 0; var limit = (request_headers.query.limit) ? parseInt(request_headers.query.limit) : default_limit; var reverse_sort = (request_headers.query.reverse_sort) ? true : false; var page = (request_headers.query.page) ? parseInt(request_headers.query.page) : 0; // get mailbox name var mailbox_name = ssid_sessions[socket.ssid].mailstore.getMailboxById(parseInt(mailbox)); // if false or null, then mailbox is invalid if (!mailbox_name) { mail_end_error("Invalid Mailbox ID"); } else { // mailboxid is ok if (!ssid_sessions[socket.ssid].mailstore.mailboxExists(mailbox)) { // mailbox does not yet exist, create it var mailbox_exists = ssid_sessions[socket.ssid].mailstore.createMailbox(mailbox); if (!mailbox_exists) { // failed to create mailbox for some reason mail_end_error(); } else { if (mailbox === 0) { // Just created Inbox for the first time, so create the welcome message ssid_sessions[socket.ssid].mailstore.createWelcomeMessage(); } } } var message_list = ssid_sessions[socket.ssid].mailstore.listMessages(mailbox, limit, reverse_sort, (page * limit)) var total_message_count = ssid_sessions[socket.ssid].mailstore.countMessages(mailbox); var username = ssid_sessions[socket.ssid].getSessionData("subscriber_username"); var notImplementedAlert = new clientShowAlert({ 'image': minisrv_config.config.service_logo, 'message': "This feature is not available.", 'buttonlabel1': "Okay", 'buttonaction1': "client:donothing", 'noback': true, }).getURL(); headers = `200 OK Content-type: text/html`; data = ` ${(mailbox_name === "Inbox") ? ' Mail list for ' + username : mailbox_name}
Write
Storage
Addresses
Clean up

 


Quick Tip:
indicates messages from known senders
`; var icon_image = null; switch (mailbox_name) { case "Inbox": switch (total_message_count) { case 0: icon_image = "OpenMailbox0.gif"; break; case 1: icon_image = "OpenMailbox1.gif"; break; default: icon_image = "OpenMailbox2.gif"; break; } break; case "Sent": icon_image = "MailboxSent.gif"; break; case "Trash": icon_image = "MailboxDiscard.gif"; break; default: icon_image = "MailboxStorage.gif"; break; } data += `
${(mailbox_name === "Inbox") ? ' Mail list for ' + username : mailbox_name}
Settings

`; if (message_list) { data += ` ${total_message_count} e-mail message${(total_message_count != 1) ? 's' : ''} for
${username}@${minisrv_config.config.service_name}


From Subject Date

`; Object.keys(message_list).forEach(function (k) { var message = message_list[k]; console.log(message); data += `
${(message.known_sender) ? '' : ''} ${(message.from_name) ? message.from_name : message.from_addr} ${(message.subject) ? message.subject : "(No Subject)"} `; var message_date = new Date(message.date * 1000); data += (message_date.getMonth() + 1) + "/" + message_date.getDate() + "\n"; data += `
`; }); } else { data += ` No ${(mailbox_name == "Inbox") ? `new e-mail messages for
${username}@${minisrv_config.config.service_name}
` : 'e-mail messages in mailbox '+mailbox_name}

`; } data += `
`; } } else { mail_end_error("Access Denied"); }