After reading that smtpd will be removed from Python in the upcoming 3.12 release after a very long deprecation phase, I decided to give massmail a serious re-spin.
Finally have a proper Python3 rewrite. The bulk of the code was still coming from 2003 :-))
Have tests for everything™ (test coverage is above 95%) :-)
Use click for creating the CLI: this is not only much more compact than before, we now have also proper error reporting for wrong options and wrong values
Use rich for coloring of the output and for progress bars
Use the modern API of the email module from the standard library
Use the modern API of the smtplib module from the standard library
Drop the confusing API mixing a parameter file as argument and the body text on stdin. Now everything is an option to the CLI
Make massmail complain when stuff seems weird in the parameter file or in the body text
Now it is UTF8 everywhere: no need to restrict subject or From header to ASCII anymore!
Have a comprehensive testing framework, so it is trivial to add new tests for future new functionality
This PR is going to be difficult to review by looking at the diff: not a lot of the original code has survived. It is probably easier to just look at the raw files. It is just two files after all ;-)
This PR fixes #93, fixes #87, fixes #46, fixes #41, fixes #21. fixes #18, fixes #14, fixes #13, fixes #11, fixes #9, fixes #7 , fixes #6 fixes #4, fixes #2
These PRs are made obsolete by this PR: fixes #92, fixes #91, fixes #90, fixes #89, fixes #88, fixes #86, fixes #85
After reading that
smtpd
will be removed from Python in the upcoming 3.12 release after a very long deprecation phase, I decided to givemassmail
a serious re-spin.massmail
a proper package :-)aiosmtpd
for testingclick
for creating the CLI: this is not only much more compact than before, we now have also proper error reporting for wrong options and wrong valuesrich
for coloring of the output and for progress barsemail-validator
for properly validate email addressesemail
module from the standard librarysmtplib
module from the standard librarystdin
. Now everything is an option to the CLImassmail
complain when stuff seems weird in the parameter file or in the body textThis PR is going to be difficult to review by looking at the diff: not a lot of the original code has survived. It is probably easier to just look at the raw files. It is just two files after all ;-)
This PR fixes #93, fixes #87, fixes #46, fixes #41, fixes #21. fixes #18, fixes #14, fixes #13, fixes #11, fixes #9, fixes #7 , fixes #6 fixes #4, fixes #2 These PRs are made obsolete by this PR: fixes #92, fixes #91, fixes #90, fixes #89, fixes #88, fixes #86, fixes #85