Open superboum opened 4 years ago
Hi @superboum thank you for pointing this out. I think you are right here. I was not really sure on the part that there might exist such mail systems that do not allow alias creation. I will definitely take this into consideration, and yes in my current deployment I am checking this out with MailInaBox
I have engineered this solution for perfect use case and the main motivation was to learn how easy of feasible is to create such system in Java spring boot. I specifically wanted to create this entire sub system in Java spring boot, because I wanted to learn it. And I have always believed that best way to learn such frameworks is to create a mini project out of it. So if you might see the code, then you will notice this is not very well written code. I have tried to engineered this up with best system design perspective. And this was the main motivation to put it in open source domain, which was to learn from community and grow.
I will definitely take your input, I also will try to improve the documentation to make this clean and clear.
Also @superboum on a different note, I was thinking if I can spin up scalable SMTP server within this Java service so that I don't have to rely on the external mail service. It is the improvement that I plan to make it in the next major Release, if you have any inputs to make in this part this will definitely help me out planning this.
After that implementation is done, then the code will become much more simple and organised that I don't have to reply on the external mail service to send emails to and this will then completely eliminate the use of IMAP task executor. The flow will become speedy and then entire control will be in this application. How do you feel about this?
First of all, I am not a (Java) expert. So, the following is only my humble opinion. By reading you, it seems you want a standalone solution, that does not require to setup extra dependencies.
First, you only need a SMTP server and you can discard your IMAP server. If you want to integrate the SMTP server in your Java project, you will need to find a "SMTP server java library". I can't make any specific recommendation as I don't know this domain, but you may search the previous keywords in a search engine and try them. You could also take a look at Apache James internals, especially at their protocols library. You will not need anymore to process aliases, to hook imap or whatever. ou will simply process each SMTP message delivery directly, being able to do the mapping with your own rule and get the message directly parsed.
As a side note, it seems you like a lot Telegram but also doing things on your own. You might be interested by Matrix, a chat app that you can self host, is federated and supports E2E encryption. their spec and their main client.
I think SMTP Alias Creation feature is not standard. It seems you use internally mailinabox Maybe you should document it in your README, that you expect users to run their admin panel. More specifically I would mention that:
Kudos for the project.