MultiMailSender is an open-source bulk email sending application with a modern Angular-based frontend and a robust Spring Boot backend. It allows you to send personalized emails to multiple recipients, each with custom parameters and optional attachments.
- Bulk email sending with per-recipient personalization
- Supports PDF and other file attachments
- Secure authentication using Gmail App Password
- User-friendly, modern, and well-documented interface
- Server health check endpoint
- Easy deployment with Docker support
- Backend: Java 17, Spring Boot 3, Spring Mail, Maven, Lombok
MultiMailSender, Angular tabanlı modern bir ön yüz ve Spring Boot tabanlı sağlam bir arka yüz ile çoklu kişilere kişiselleştirilmiş e-posta göndermenizi sağlayan bir açık kaynak uygulamadır. Her alıcı için farklı parametreler kullanabilir, ek dosyalar (PDF vb.) gönderebilir ve gönderim ilerlemesini gerçek zamanlı olarak takip edebilirsiniz.
- Kitle (bulk) e-posta gönderimi
- Her alıcıya özel kişiselleştirilmiş şablon alanları (ör. {companyName})
- Dosya ekleri desteği (PDF, dokümanlar)
- Gmail App Password ile güvenli SMTP gönderimi
- Gönderim ilerleme bildirimleri ve durum takibi
- Docker ile kolay dağıtım opsiyonu
- Backend: Java 17, Spring Boot, Spring Mail, Maven
- Frontend: Angular, Bootstrap, RxJS
- Diğer: Docker (opsiyonel)
Öncelikle repoyu klonlayın ve proje dizinine gidin:
- Backend (Spring Boot)
- Gereksinimler: Java 17+ ve Maven
- Proje dizinine gidin ve çalıştırın:
cd backend\MultiMailSender
.\mvnw clean install
.\mvnw spring-boot:runAlternatif olarak sisteminizde Maven varsa:
mvn clean install
mvn spring-boot:run- Frontend (Angular)
- Gereksinimler: Node.js (18+), npm
- Frontend dizinine gidin ve bağımlılıkları kurup çalıştırın:
cd frontend\multi-mail-sender
npm install
npm startArdından tarayıcıda http://localhost:4200 adresini açın.
- Endpoint:
POST /send-mails-with-attachment - Content-Type:
multipart/form-data - Parametreler:
request: (JSON) Gönderici bilgileri, konu, gövde ve alıcı listesifiles: (opsiyonel) Ek dosyalar
Örnek request JSON (bkz. backend/MultiMailSender/src/main/resources/exampleRequest.json):
{
"username": "example@gmail.com",
"password": "examplePassword",
"subject": "Konu örneği",
"bodydraft": "Merhaba {companyName}, ...",
"companyData": [
{ "id": 0, "companyMail": "company0@gmail.com", "parameters": { "companyName": "company0" } }
]
}- Endpoint:
GET /health - Örnek cevap:
{
"message": "Server is running",
"data": null
}- GUI içerisinde verilen username ve password(app password) bilgilerinizi girin. Başka ekstra bir konfigürasyona ihtiyaç duyulmamaktadır.
- Repo'yu fork'layın
- Yeni bir branch açın
- Değişikliklerinizi test edin ve PR gönderin
