SMTP server performing email forwarding (Python) -- 2
Budget: $250 – $750 USD
The Python-based SMTP server application should listen to ports 25 and 587 and perform email forwarding according to industry standards.
Upon arrival of an email, the application should make a request to a REST HTTP endpoint with the recipient email address as a parameter. The endpoint will either return an error, or HTTP 200 together with the Forward To email address.
If the endpoint replies with an error, the email message should be rejected.
If an Forward To email address is returned, the SMTP server should forward the email to the Forward To email address through an external SMTP relay.
The application should implement domain-based rate limits for forwarded emails and be able to cope with greylisting of emails (i.e. try to forward an email later if greylisting occurred).
Example workflow:
*Email forwarding is set up from test (at) example.com to me (at) forward.com*
1. Application receives incoming email from person1 (at) gmail.com to test (at) example.com
2. Application makes query to https://[endpoint]/email_forwards/person1(at)gmail.com
3. Query is replied with HTTP 200 OK with payload {"forward_to":"me(at)forward.com"}
4. Application forwards email to me(at)forward.com using industry standards.
Upon arrival of an email, the application should make a request to a REST HTTP endpoint with the recipient email address as a parameter. The endpoint will either return an error, or HTTP 200 together with the Forward To email address.
If the endpoint replies with an error, the email message should be rejected.
If an Forward To email address is returned, the SMTP server should forward the email to the Forward To email address through an external SMTP relay.
The application should implement domain-based rate limits for forwarded emails and be able to cope with greylisting of emails (i.e. try to forward an email later if greylisting occurred).
Example workflow:
*Email forwarding is set up from test (at) example.com to me (at) forward.com*
1. Application receives incoming email from person1 (at) gmail.com to test (at) example.com
2. Application makes query to https://[endpoint]/email_forwards/person1(at)gmail.com
3. Query is replied with HTTP 200 OK with payload {"forward_to":"me(at)forward.com"}
4. Application forwards email to me(at)forward.com using industry standards.