MailTo EMS is a robust, extensible Email Marketing Software designed for organizations to manage, automate, and analyze email campaigns at scale. It supports contact management, group segmentation, campaign reporting, Excel import/export, and more, with a modular .NET architecture and Docker support.
- Contact and group management
- Bulk email sending and campaign management
- Excel import/export for contacts and reports
- Role-based access and membership management
- RESTful API and web interface
- Worker services for background processing
- Dockerized deployment
EmailMarketing.Web/ # ASP.NET Core MVC web application
EmailMarketing.Framework/ # Core business logic and domain entities
EmailMarketing.Data/ # Data access and repository pattern
EmailMarketing.Common/ # Shared utilities and constants
EmailMarketing.Membership/ # User and membership management
EmailMarketing.ExcelWorkerService/ # Worker for Excel import
EmailMarketing.ExcelExportWorkerService/ # Worker for Excel export
EmailMarketing.EmailSendingWorkerService/ # Worker for sending emails
EmailMarketing.CampaingReportExcelExportService/ # Worker for campaign report export
... (see solution for all projects)
- .NET 10.0 SDK
- Docker (for containerized deployment)
- SQL Server (local or remote)
git clone https://github.com/ysnarafat/mailto-ems.git
cd mailto-ems- Update
EmailMarketing.Web/appsettings.jsonwith your database connection string and SMTP settings. - Environment variables can be set for Docker deployment (see
docker-compose.yml).
dotnet build EmailMarketing.sln
dotnet run --project EmailMarketing.Web/EmailMarketing.Web.csprojdocker-compose up --build- Access the web UI at
http://localhost:8080(default Docker port) - Register/login and start managing contacts, groups, and campaigns
- Import/export contacts using Excel files
- Monitor logs in
EmailMarketing.Web/wwwroot/Logs/
Unit tests are available in the *.Tests projects. Run all tests:
dotnet test EmailMarketing.slnPull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License. See the LICENSE file for details.