moggers87 / lmtpd Goto Github PK
View Code? Open in Web Editor NEWA LMTP counterpart to smtpd in the Python standard library
License: MIT License
A LMTP counterpart to smtpd in the Python standard library
License: MIT License
Python 2 goes EOL at the end of 2019.
Also remove code required for Python 2 support.
Currently only IPv4 and UNIX sockets are supported. We should use getaddrinfo
to see what's available and maybe allow the user to override what we find there.
test_lmtp file is not included in PyPI release tarball. Could it be added so one could use it as a source when packaging for distros? For now, I'll use the GitHub release tarball because that contains it.
From reading the pydoc on lmtpd, I cannot work out how to return a single reply for every recipient. Moreover, it is strange that the last one should be explicitly returned, as None
would also have a response that would apply to that last recipient.
It would make sense to me to return a list as long as the list of RCPT TO
addresses; it would also make sense if a separate 250 Ok
was sent for each of these when None
was returned. But I cannot work this out from the documentation.
Furthermore, an empty list of RCPT TO
addresses should return 503
, which is a deviation from SMTP. Has this been taken care of, or is it the subclass's responsibility?
Finally, a remark might be useful that the module really completely locks out unless it is sent the CR-LF line endings. It is absolutely not forgiving (and nc -C
is enough to resolve that, but it helps to know why it freezes).
Could you update the documentation please, and if needed, the code as well, to deviate from SMTP where LMTP needs it?
Support Python 3, maybe even look into getting it included in Python 3's smtpd.py
While implementing Python 3 support in Salmon (see moggers87/salmon#7 ), I stumbled upon this: https://bugs.python.org/issue19662
tl;dr: Python's SMTPd is absolutely useless in anything less than 3.5 (assuming the above patch made it into the 3.5 release)
We should start testing with non-ASCII/UTF-8 data and fix the library to work with Python 3.5 and then decide what do about 3.3 and 3.4.
A server implementation MUST implement the PIPELINING [PIPELINING]
and ENHANCEDSTATUSCODES [ENHANCEDSTATUSCODES] ESMTP extensions. A
server implementation SHOULD implement the 8BITMIME [8BITMIME]
extension.
This is totally something we should do.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.