Typescript Email Server Development
Budget: $250 – $750 USD
I'm looking for an experienced developer to create an email server using Typescript. The server needs to support both SMTP and IMAP protocols.
Key functionalities include:
- Running a complete email service
- Sending, receiving emails
- Email authentication
- REST API for frontend to easily retrieve and send emails
Technical Requirements
- Set up a MySQL database to store emails and authentication information.
---- You should design the tables to make sure maintains
------ authentication table: Username and encrypted password
------ email table: Email history
- Authentication module to make sure the user exists in the authentication table, to retrieve or send emails
- Support SMTP to send emails
- Support IMAP to retrieve emails
- Provide a REST API to manage authentication
---- POST to create a new user, with username and password
---- DELETE to delete an existing user, with basic authentication (username/password)
- Provide a REST API to retrieve email history, so a web app can use it to easily show the emails
---- It should use basic authentication (username/password)
Automated Client Side tests
1. Use API to create two users, with username/password
2. Send email from user1 to user2 with SMTP with invalid authentication. Expect it to fail
3. Retrieve email for user2 with invalid authentication. Expected it to fail.
4. Retrieve email for user2 with valid authentication. Expected it to succeed, with empty email list.
5. Send email from user1 to user2 with SMTP, with valid authentication. Expect it to succeed.
6. Retrieve email for user2 with IMAP. Expect it to succeed with the email from user1.
7. Delete user1 with REST API. Expect it to succeed
8. Delete user2 with REST API. Expect it to succeed
Documentations
- Provide clear documentations on
—- How to deploy
— Your own deployment to test against
Ideal skills and experience:
- Proficiency in Typescript
- Strong understanding of SMTP and IMAP protocols
- Experience with email server implementation and security
Please provide relevant past work and a brief plan for execution.
Key functionalities include:
- Running a complete email service
- Sending, receiving emails
- Email authentication
- REST API for frontend to easily retrieve and send emails
Technical Requirements
- Set up a MySQL database to store emails and authentication information.
---- You should design the tables to make sure maintains
------ authentication table: Username and encrypted password
------ email table: Email history
- Authentication module to make sure the user exists in the authentication table, to retrieve or send emails
- Support SMTP to send emails
- Support IMAP to retrieve emails
- Provide a REST API to manage authentication
---- POST to create a new user, with username and password
---- DELETE to delete an existing user, with basic authentication (username/password)
- Provide a REST API to retrieve email history, so a web app can use it to easily show the emails
---- It should use basic authentication (username/password)
Automated Client Side tests
1. Use API to create two users, with username/password
2. Send email from user1 to user2 with SMTP with invalid authentication. Expect it to fail
3. Retrieve email for user2 with invalid authentication. Expected it to fail.
4. Retrieve email for user2 with valid authentication. Expected it to succeed, with empty email list.
5. Send email from user1 to user2 with SMTP, with valid authentication. Expect it to succeed.
6. Retrieve email for user2 with IMAP. Expect it to succeed with the email from user1.
7. Delete user1 with REST API. Expect it to succeed
8. Delete user2 with REST API. Expect it to succeed
Documentations
- Provide clear documentations on
—- How to deploy
— Your own deployment to test against
Ideal skills and experience:
- Proficiency in Typescript
- Strong understanding of SMTP and IMAP protocols
- Experience with email server implementation and security
Please provide relevant past work and a brief plan for execution.