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]; } var intro_seen = session_data.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 { if (!intro_seen && request_headers.query.intro_seen) { // User has come from intro session_data.mailstore.setMailIntroSeen(true); } // check if mailstore exists (returns null if guest) mailstore_exists = session_data.mailstore.mailstoreExists(); // create mailstore if it doesnt exist (also returns null if guest) if (!mailstore_exists) mailstore_exists = session_data.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 = session_data.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 (!session_data.mailstore.mailboxExists(mailbox)) { // mailbox does not yet exist, create it var mailbox_exists = session_data.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 session_data.mailstore.createWelcomeMessage(); } } } var message_list = session_data.mailstore.listMessages(mailbox, limit, reverse_sort, (page * limit)) var total_message_count = session_data.mailstore.countMessages(mailbox); var total_unread_message_count = session_data.mailstore.countUnreadMessages(mailbox); var message_list_string = null; if (total_message_count == 0) { message_list_string = "No new mail messages for "; } else { if (total_unread_message_count > 0) { message_list_string = total_unread_message_count + " new mail message" + ((total_message_count != 1) ? 's' : ''); if (total_message_count - total_unread_message_count > 0) message_list_string += ", " + (total_message_count - total_unread_message_count) + " mail message" + (((total_message_count - total_unread_message_count) != 1) ? 's' : '') + " for "; } else { message_list_string = total_message_count + " mail message" + ((total_message_count != 1) ? 's' : '') + " for "; } } var username = session_data.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": icon_image = session_data.mailstore.getMailboxIcon(); 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 += ` ${message_list_string}
${username}@${minisrv_config.config.service_name}


From Subject Date

`; Object.keys(message_list).forEach(function (k) { var message = message_list[k]; if (typeof message.subject == "object" && message.subject) message.subject = wtvshared.decodeBufferText(message.subject); message.known_sender = session_data.isAddressInAddressBook(message.from_addr); var message_font_open = ""; var message_font_close = ""; if (message.unread) { message_font_open = ``; message_font_close = "" } data += `
${(message.known_sender) ? '' : ''} ${message_font_open} ${(message.from_name) ? message.from_name : message.from_addr} ${message_font_close} ${message_font_open} ${(message.subject) ? wtvshared.htmlEntitize(message.subject) : "(No Subject)"} ${message_font_close} ${message_font_open} `; var message_date = new Date(message.date * 1000); data += (message_date.getMonth() + 1) + "/" + message_date.getDate() + "\n"; data += ` ${message_font_close}
`; }); } 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"); } }