All Projects → DigitalRuby → MailDemon

DigitalRuby / MailDemon

Licence: MIT license
Smtp server for mass emailing, managing email lists and more. Built on .NET Core. Linux, MAC and Windows compatible.

Programming Languages

C#
18002 projects
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to MailDemon

Docker Postfix
Simple SMTP server / postfix null relay host for your Docker and Kubernetes containers. Based on Alpine Linux.
Stars: ✭ 163 (+44.25%)
Mutual labels:  mail, smtp, smtp-server
Mailslurper
Local, web-based mail server application. Slurp mails into oblivion!
Stars: ✭ 920 (+714.16%)
Mutual labels:  mail, smtp, smtp-server
Sendria
Sendria (formerly MailTrap) is a SMTP server designed to run in your dev/test environment, that is designed to catch any email you or your application is sending, and display it in a web interface instead of sending to real world.
Stars: ✭ 30 (-73.45%)
Mutual labels:  mail, smtp, smtp-server
SimpleKotlinMail
A simple, coroutine based Kotlin Email API for both client- and server-side projects
Stars: ✭ 56 (-50.44%)
Mutual labels:  mail, smtp, smtp-server
mailgrab
Simple and easy to use catch-all SMTP mail server and debugging tool
Stars: ✭ 92 (-18.58%)
Mutual labels:  mail, smtp, smtp-server
Inbucket
Disposable webmail server (similar to Mailinator) with built in SMTP, POP3, RESTful servers; no DB required.
Stars: ✭ 685 (+506.19%)
Mutual labels:  mail, smtp, smtp-server
go-simple-mail
Golang package for send email. Support keep alive connection, TLS and SSL. Easy for bulk SMTP.
Stars: ✭ 298 (+163.72%)
Mutual labels:  mail, smtp, bulk-email
Tmail
Golang SMTP server
Stars: ✭ 251 (+122.12%)
Mutual labels:  mail, smtp, smtp-server
Hedwig
Send email to any SMTP server like a boss, in Swift and cross-platform
Stars: ✭ 1,096 (+869.91%)
Mutual labels:  mail, smtp
Mailmergelib
MailMergeLib is a mail message client library which provides comfortable mail merge capabilities for text, inline images and attachments, as well as good throughput and fault tolerance for sending mail messages.
Stars: ✭ 97 (-14.16%)
Mutual labels:  mail, smtp
ControlCenter
Mirrored from GitLab! Monitoring and automation for Open Source email servers, starting with Postfix. Please do not submit issues or PRs here - join us at: https://gitlab.com/lightmeter
Stars: ✭ 88 (-22.12%)
Mutual labels:  smtp, smtp-server
Mailer
A lightweight PHP SMTP mail sender
Stars: ✭ 53 (-53.1%)
Mutual labels:  mail, smtp
Free Email Forwarding
The best free email forwarding for custom domains. Visit our website to get started (SMTP server)
Stars: ✭ 2,024 (+1691.15%)
Mutual labels:  mail, smtp
Postal
✉️ A fully featured open source mail delivery platform for incoming & outgoing e-mail
Stars: ✭ 11,148 (+9765.49%)
Mutual labels:  mail, smtp
Neomutt
✉️ Teaching an Old Dog New Tricks -- IRC: #neomutt on irc.libera.chat
Stars: ✭ 2,343 (+1973.45%)
Mutual labels:  mail, smtp
Mailinabox
Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.
Stars: ✭ 10,649 (+9323.89%)
Mutual labels:  mail, smtp
Docker Mailserver
Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.
Stars: ✭ 8,115 (+7081.42%)
Mutual labels:  mail, smtp
Wepush
专注批量推送的小而美的工具,目前支持:模板消息-公众号、模板消息-小程序、微信客服消息、微信企业号/企业微信消息、阿里云短信、阿里大于模板短信 、腾讯云短信、云片网短信、E-Mail、HTTP请求、钉钉、华为云短信、百度云短信、又拍云短信、七牛云短信
Stars: ✭ 2,597 (+2198.23%)
Mutual labels:  mail, message
Maddy
✉️ Composable all-in-one mail server.
Stars: ✭ 2,800 (+2377.88%)
Mutual labels:  mail, smtp
Mailu
Insular email distribution - mail server as Docker images
Stars: ✭ 3,151 (+2688.5%)
Mutual labels:  mail, smtp

& Mail Demon &

Mail Demon is a simple and lightweight C# smtp server and mail list system for sending unlimited emails and text messages. With a focus on simplicity, async and performance, you'll be able to easily send thousands of messages per second even on a cheap Linux VPS. Memory usage and CPU usage are optimized to the max. Security and spam prevention is also built in using SPF validation.

Mail Demon requires .NET 6.0+ runtime installed, or you can build a stand-alone executable to remove this dependancy.

Make sure to set appsettings.json to your required parameters before attempting to use.

Thanks to MimeKit and MailKit for their tremendous codebase.

Mail Demon is great for sending notifications, announcements and even text messages. See SMS Email Gateway for more information on text messages.

IPBan Integration

Mail Demon is integrated with IPBan. If you have installed IPBan on your Linux or Windows box, then Mail Demon will send failed login attempts from SMTP or the mail list login to IPBan via a custom log file, blocking those attackers that exceed the failed login threshold for IPBan.

Project Build Instructions

  • Ensure .NET 6.0 SDK or newer installed.
  • Download code, open in Visual Studio or VS Code, set release configuration.
  • Update appsettings.json with your settings. I recommend an SSL certificate. Lets encrypt is a great option. Make sure to set the users to something other than the default.
  • Right click on project, select 'publish' option.
  • Find the publish folder (right click on project and open in explorer), then browse to bin/release/publish/netcoreapp and make sure it looks good.
  • If you don't want to install .NET core, set your publish profile to "self contained".
  • FTP or copy files to your server.
  • For Windows, use Firedaemon and set the command to run your .dll or .exe from your publish step.
  • For Linux setup a service (put binaries in /opt/MailDemon):
sudo nano /lib/systemd/system/MailDemon.service
[Unit]
Description=Mail Demon Service
After=network.target

[Service]
WorkingDirectory=/opt/MailDemon
ExecStart=/usr/bin/dotnet /opt/MailDemon/MailDemon.dll
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload 
sudo systemctl enable MailDemon
sudo systemctl start MailDemon
systemctl status MailDemon

Smtp Setup Instructions

Supported smtp extensions:

  • 250-SIZE
  • 250-8BITMIME
  • 250-AUTH PLAIN
  • 250-PIPELINING
  • 250-ENHANCEDSTATUSCODES
  • 250-BINARYMIME
  • 250-CHUNKING
  • 250-STARTTLS
  • 250 SMTPUTF8

Known Issues:

  • Hotmail.com, live.com and outlook.com have had an invalid SSL certificate for quite a while now. I've added them to appsettings.json. You may need to add additional entries for mail services with bad certificates.

Mail List Setup

Mail Demon contains an integrated mail list management website and mail list sending service. In order to use this service, you must setup your appsettings.json file and make some additional optional customization.

  • Make sure your smtp settings are correct in appsettings.json.
  • Setup appsettings.json, mailDemonWeb section.
  • Use --server.urls parameter to set the kestrel binding for the web server.
  • Login with https://yourdomain.com/MailDemonLogin. Replace yourdomain.com with your actual domain name. Use the admin user/password from the appsettings.json file. Nothing will show up until you login.
  • Create a new mailing list using menu at top.
  • List name is meant to be more like a short variable name, somewhat human readable, but short and unique. List title is what subscribers will see.
  • Send your victims, I mean subscribers, to https://yourdomain.com/SubscribeInitial/[listname]. Replace yourdomain.com with your actual domain name. Replace [listname] with the actual list name.
  • Create new templates by selecting lists at the top, then using create template button.
  • The template name format is [listName]@[templateName] (without brackets). Just like lists, the template name is a short, human readable and unique name.
  • The template title is NOT the subject of the email, it is just informational for you only.
  • Full razor syntax, @Html, etc. is supported. The model for the templates is the MailListSubscription class.
  • Feel free to create and edit templates in visual studio and then paste them into the template text box.
  • Each template should have a layout. A layout is a template that you will never email, it just wraps other templates. You can name your layout [listName]@[layoutName] (without brackets). You can start with _LayoutMail.cshtml and customize and provide your own css link. You should also provide an unsubscribe link, along with a physical mailing address to comply with anti-spam laws.
  • Set the layout of your template like this: @{ Layout = "listName@layoutName"; }
  • To set the email subject, add a <!-- Subject: ... --> to the body of your template, it will then be set as the email subject. This is required in order to send email. See SubscribeConfirmDefault.cshtml for an example.
  • To bulk send email from a mail list, select (or create) the template from the list to send, edit it, add your subject and save. Then use the send button to perform the bulk email operation. Errors will be logged.
  • There are three magic template names that can override the default behavior for a list:
    • SubscribeInitial (see SubscribeInitialDefault.cshtml). This is the initial sign-up form.
    • SubscribeConfirm (see SubscribeConfirmDefault.cshtml). This is the confirmation email with a link to activate the subscription.
    • SubscribeWelcome (see SubscribeWelcomeDefault.cshtml). This is the welcome email to notify of the active subscription, along with an unsubscribe link.
  • Note that the MailDemon.db file contains all the lists, templates, subscribers, etc. Backup this file regularly!
  • You can also store your templates in the Views/Shared directory. Follow the same naming convention for a template name

Database

Mail Demon uses sqlite by default. In the appsettings.json file, you can set the DatabaseProvider element to sqlserver and set ConnectionStrings:sqlserver to your sql server connection string if desired.

Enjoy!

--Jeff

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].