Release v9.0 - Email Attachments Support
Release Date: October 6, 2025
🎉 What's New
Email Attachments for Transactional Emails
Send files with your transactional emails! Version 9.0 introduces comprehensive email attachment support across all ESP integrations.
✨ Key Features
- Universal Support: Works with all ESP providers (SMTP, Amazon SES, SparkPost, Postmark, Mailgun, Mailjet)
- Smart Deduplication: Automatically detects and reuses identical files to optimize storage
- Flexible Limits: Send up to 20 files per email (3MB per file, 10MB total)
- Auto Content-Type Detection: Automatically identifies file types if not specified
- Inline & Attachment: Support for both attachment and inline dispositions
📦 Common Use Cases
- Order Confirmations: Attach invoices and receipts
- Booking Confirmations: Attach tickets and itineraries
- Legal Documents: Attach contracts and agreements
- Reports: Attach analytics reports and summaries
- Certificates: Attach completion certificates and badges
🔧 Technical Changes
Database Updates
- New Table:
message_attachmentsfor efficient file storage with SHA256-based deduplication - Schema Update: Added
attachmentsJSONB column tomessage_historytable - Automatic Migration: v9 migration runs automatically on startup
API Changes
New Attachment Object
{
"filename": "invoice.pdf",
"content": "JVBERi0xLjQKJeLjz9MK...",
"content_type": "application/pdf",
"disposition": "attachment"
}Updated Email Options
The email_options object now supports an attachments array:
{
"workspace_id": "your_workspace",
"notification": {
"id": "order_confirmation",
"contact": {
"email": "customer@example.com"
},
"data": {
"order_id": "ORD-12345"
},
"email_options": {
"attachments": [
{
"filename": "invoice-12345.pdf",
"content": "JVBERi0xLjQKJeLjz9MKMy4uLg==",
"content_type": "application/pdf"
}
]
}
}
}📋 Attachment Specifications
| Specification | Limit |
|---|---|
| Max files per email | 20 |
| Max size per file | 3MB |
| Max total size per email | 10MB |
| Supported formats | All file types |
| Encoding | Base64 |
🚀 Getting Started
1. Update to v9.0
# Pull the latest version
docker pull notifuse/notifuse:v9.0
# Or update your docker-compose.yml
version: '3.8'
services:
notifuse:
image: notifuse/notifuse:v9.02. Automatic Migration
The database migration runs automatically on first startup. No manual intervention required.
3. Start Sending Attachments
Use the updated API to send emails with attachments:
curl -X POST https://your-domain.com/api/transactional.send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspace_id": "your_workspace",
"notification": {
"id": "invoice_email",
"contact": {
"email": "customer@example.com"
},
"email_options": {
"attachments": [
{
"filename": "invoice.pdf",
"content": "JVBERi0xLjQK...",
"content_type": "application/pdf"
}
]
}
}
}'📚 Documentation
- Transactional API Documentation
- API Reference
- Migration Plan
🔄 Upgrade Path
From v8.x to v9.0
- Backup your database (recommended)
- Update the Notifuse image to v9.0
- Restart the application - migration runs automatically
- Verify migration - Check logs for successful migration message
Rollback Instructions
If you need to rollback:
- Stop the v9.0 instance
- Restore your v8.x database backup
- Start the v8.x instance
⚠️ Breaking Changes
None. This release is fully backward compatible. Existing API calls without attachments will continue to work exactly as before.
🐛 Known Issues
None at this time.
🙏 Feedback
We'd love to hear your feedback! If you encounter any issues or have suggestions:
📝 Full Changelog
See CHANGELOG.md for complete version history.
Notifuse v9.0 - Making transactional emails more powerful, one attachment at a time! 🚀