stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

MailOnAPI

  • 20 Devlogs
  • 39 Total hours

MailOnAPI or Mail On a PI is a self hosted email server and client. It acts as a frontend for various popular mail services and is designed to run on a raspberry PI.

Ship #1

I’ve made an email server, email client and an IMAP server to allow it to be used in external email clients. The IMAP server is quite feature ful to 2003 standards, um not recent standards it is a custom implementation of RFC3501 which is from 2003 but it was only made obsolete in 2022 and is still used by gmail for it’s IMAP so it’s still very well supported. Right now I’m using Resend as the email service to send out emails but the implementation makes it very easy to support more.

  • 18 devlogs
  • 29h
Try project → See source code →
Open comments for this post

5h 33m 31s logged

I reworked the way we manage things listening in to the socket to add a proper listener module instead of having it all in the handle command function. The handle command function worked until now but now that we want commands that expect more data than just one line we do need to expand it to something more streamlined. Commands can now register listeners on the feed from the socket and remove them as they please in order for them to get the required data. We also added a few commands and Idling which allows email clients to idle instead of just sit and poll the server for new mail. I kinda changed the process buffer function so that it can dynamicly figure out if the newline is crlf or lf instead of guess and so it includes that in it’s output. Because we now have listeners we can now add the append command and it will recieve a stream of data from the listener.

0
0
9
Open comments for this post

1h 11m 26s logged

I allowed our IMAP parser to be able to understand parenthasis WOO, i had to change a little bit with our fetch function because it didn’t expect that and I added some more IMAP commands our command repertoire now looks like this.

0
0
6
Open comments for this post

2h 57m 51s logged

IMAP Server WOOOOO! Today I made an IMAP server for the email server/client so it can be used with say Thunderbird. Now there’s a very very basic implementation but it’s there and you can read emails. WOO.

0
0
2
Open comments for this post

2h 20m 5s logged

I significantly improved the code for mailboxes. Now we have table for mailboxes and I also made it more clear which mailbox you’re currently in. This makes it easier for me to eventually implement IMAP.

0
0
8
Open comments for this post

1h 34m 37s logged

Today I completely revamped the way emails are stored in the database to make it better. I also added seen checking to mark emails as read. I added mail boxes as well instead of just inbox and sent so users can have custom mailboxes.

0
0
6

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…