All Projects → mikedilger → mailstrom

mikedilger / mailstrom

Licence: other
Mail delivery via a separate thread [rust library]

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to mailstrom

Mailer
A light-weight, modular, message representation and mail delivery framework for Python.
Stars: ✭ 225 (+476.92%)
Mutual labels:  email-sender
Android-Email-App-using-Javamail-Api
An Android App to send mail without gamil/email interaction!
Stars: ✭ 19 (-51.28%)
Mutual labels:  email-sender
zaqar
Email microservice writen in Node.js
Stars: ✭ 52 (+33.33%)
Mutual labels:  email-sender
Email Header Analyzer
E-Mail Header Analyzer
Stars: ✭ 247 (+533.33%)
Mutual labels:  email-sender
Email-Spammer
The Ultimate script for spamming email to annoy your friends.
Stars: ✭ 66 (+69.23%)
Mutual labels:  email-sender
Meteor-Mailer
📮 Bulletproof email queue on top of NodeMailer with support of multiple clusters and servers setup
Stars: ✭ 21 (-46.15%)
Mutual labels:  email-sender
Drymail
Makes sending emails easy and DRY — For Python 3.
Stars: ✭ 218 (+458.97%)
Mutual labels:  email-sender
Email-Spammer
Great script for sending and spaming emails! gmail, yahoo, outlook, hotmail.
Stars: ✭ 79 (+102.56%)
Mutual labels:  email-sender
goeland
An alternative to rss2email written in golang with many filters
Stars: ✭ 78 (+100%)
Mutual labels:  email-sender
Bon Voyage
A Hotel booking Android application. This app consists of a Google, Facebook and email login. Firebase is used as the database. The user can select the destination, select the hotel, and book the rooms there. After the booking process is complete, a confirmation email is sent to the user.
Stars: ✭ 19 (-51.28%)
Mutual labels:  email-sender
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 (+125.64%)
Mutual labels:  email-sender
APICorePayLots
Web API designed in Asp.NET Core 3.1, using Dapper and Entity Framework Core, Repository Pattern, Identity
Stars: ✭ 13 (-66.67%)
Mutual labels:  email-sender
smtp-email-spoofer-py
Python 3.x based email spoofer
Stars: ✭ 134 (+243.59%)
Mutual labels:  email-sender
Play Mailer
Play mailer plugin
Stars: ✭ 243 (+523.08%)
Mutual labels:  email-sender
bulk-email-sender
Send Templatized Dynamic Emails Automatically
Stars: ✭ 30 (-23.08%)
Mutual labels:  email-sender
Vmime
VMime Mail Library
Stars: ✭ 218 (+458.97%)
Mutual labels:  email-sender
emailqueue
A fast, simple yet very efficient email queuing system for PHP/MySQL
Stars: ✭ 75 (+92.31%)
Mutual labels:  email-sender
pynotify
A Python package to send emails like humans.
Stars: ✭ 21 (-46.15%)
Mutual labels:  email-sender
C-Sharp-Learning-Journey
Some of the projects i made when starting to learn c#, winfroms and wpf
Stars: ✭ 95 (+143.59%)
Mutual labels:  email-sender
mailer
Generic mailer
Stars: ✭ 16 (-58.97%)
Mutual labels:  email-sender

Mailstrom

Documentation

Mailstrom is a rust library that handles email delivery for rust programs in a background worker thread. It does the following:

  • Accepts an email from the caller and then does everything necessary to get it delivered to all recipients without blocking the caller.
  • Allows the caller to query the status of an earlier submitted email at any time, to determine if it is Queued, Delivered, Deferred, or has Failed, with details as to why, on a per-recipient basis.
  • Handles all parsing, validation, and encoding of email content and headers, in compliance with RFC 5322 (and other RFCs). Uses the email-format library for this.
  • Either delivers via a configured SMTP relay, or directly to recipient mail servers by looking up the DNS MX record for each recipient and delivering directly to those Internet mail servers over SMTP. Uses the trust-dns library for DNS lookups.
  • SMTP transport "heavy lifting" is performed via the lettre library. Uses STARTTLS where available.
  • Retries with exponential backoff for a fixed number of retries (currently fixed at 3), when the send result is Deferred
  • Uses a pluggable user-defined state management (persistence) layer.

Limitations

  • The email-format crate is somewhat incomplete and clunky still. It doesn't incorporate RFC 6854 (updated From and Sender syntax) yet. It defines types one-to-one with ABNF parsing units, rather than as semantic units of meaning. And it doesn't let you use obvious types yet like setting the date from a DateTime type. However, these issues will be worked out in the near future.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

How to avoid having your emails tagged as Spam

Mailstrom does its part to help get your emails delivered, by being compliant with RFC5322 and including a Message-Id header in every email.

You are responsible for the lion's share of the work in this regard. This link at Gmail support is quite helpful. Also,

  • Use a consistent IP address for sending.
  • If possible, have the reverse DNS of your IP address point to the domain name you are sending emails from. For gmail, this is absolutely required when sending over IPv6
  • Use a consistent helo name when sending
  • Use a consistent From email address
  • Publish an SPF TXT record, or better yet, sign email messages with DKIM with a key of at least 1024 bits
  • Publish a DMARC policy
  • Don't send spammy content. Don't send phishing content. Subject should be relevant to body.
  • Allow your users to unsubscribe, either by replying or via a link. Preferably provide a "List-Unsubscribe" email header pointing to the unsubscribe URL.
  • Automatically unsubscribe users who's address bounces mulitple pieces of mail.
  • If bulk, must have a "Precedence: bulk" header field
  • Separate promotional emails from transactional emails via separate from addresses, or even separate IP addresses and sending domains. If your promotional materials become classified as spam, at least the transactional emails will still get delivered.
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].