mettle / sendportal

Open-source self-hosted email marketing. Manage your own newsletters at a fraction of the cost.
https://sendportal.io
MIT License
1.78k stars 354 forks source link

Extending vs changing core files #208

Closed Sepremex closed 1 year ago

Sepremex commented 2 years ago

At the end of 2020 I started to use SendPortal, first I was using it with SES, client said it was very slow when sending, so we got a dedicated server, I toke the time to configure the server for mass delivery messages. But that was not enough, I also build my own tracking system and bounce checking, the bounce system toke about a month, lots of research and testing but is been working for the whole 2021 no issues. Now since this is an international client, we have a "segment/list" for each language and country, for that I had to change the core model and controllers in order to add language, country and style, that is because each segment/list has it own landing page, colours and images, plus the welcome message is custom html message based on the style configuration.

More over I had added more options for the users, such as DOB, Avatar and a few extras, again had to change the core models and controllers.

Not only that but also had to change the reports controller to include more information, added filter and date range when searching for campaigns.

As you can see I have done lots of changes to the core files, for that I can't update to v2, this is because we r entering to the EMEA and if you know they have their own rules when sending mass mailing that one needs to follow one of them is to have a CSA certification so that our messages/server don't get black listed and that Cert. is way too expensive, that is because that Cert. is for companies dedicated for that service such as ZOHO, Mailchim, iContact..., we are not that kind, so we r planing to use Mailgun for delivery, for this move I'd like to update to v2.

on v1 when trying to extend or override a model or controller I was getting namespace no exist or model class no exist., so for v2 what would be the best way to extend a model or controller for some extra functionality ?

My tracking and bounce system wont be use since we r gonna be using mailgun, but for example, when a user register we ask for their DOB and country, that info goes to the subscribe table, then for the reports in campaigns I have added language, country, email count, total sent, total bounce, opens... in a table which has a filter options such as country, language, and date range plus a cvs file for the current filter as report, that is for the index view, then on the show view I added my tracking data...

So, should I use the standalone version or the package version?

Thank you!.