| .forgejo/workflows | ||
| .typestubs | ||
| examples | ||
| .gitignore | ||
| .mypy.ini | ||
| .pre-commit-config.yaml | ||
| LICENSE | ||
| logo.svg | ||
| micromail.py | ||
| package.json | ||
| README.md | ||
micromail
Tiny SMTP client for Micropython. See examples for usage.
Inspired from shawwwn/uMail.
Installation
Manual
Copy the micromail.py file to your device. You will need to install the datetime library as well.
MIP
>>> import mip
>>> mip.install("https://code.edgarpierre.fr/edpibu/micromail/releases/download/latest/")
Documentation
Class MicromailClient
-
class micromail.MicromailClient(host: str, port: int = 0, ssl: bool = False, starttls: bool = False)Create a new SMTP client.
-
MicromailClient.connect()Establish a connection to the SMTP server. The connection is kept alive until
MicromailClient.quit()is called. -
MicromailClient.login(username: str, password: str)Login to the SMTP server with the provided username and password.
PLAINandLOGINauthentication methods are currently supported. -
MicromailClient.write(data: str | bytes)Write
dataof typebytearrayon the server. -
MicromailClient.send_command(*cmd: str | bytes, code: int | list[int] = []) -> tuple[int, list[str]]Send command to the SMTP server; returns status code and list of response lines.
-
MicromailClient.read_res(cmd: str = "", code: int | list[int] = []) -> tuple[int, list[str]]Read response from the SMTP server; returns status code and list of response lines.
-
MicromailClient.ehlo() -> list[str]Send SMTP EHLO command to the server and return response.
-
MicromailClient.starttls()Send SMTP STARTTLS command and enable SSL on socket.
-
MicromailClient.new_message(to: str | list[str], sender: str | None = None)Create a new email; sender defaults to username.
-
MicromailClient.headers(headers: dict[str, str])Define email headers; supported headers are
date(str, defaults to current date),from(defaults tonew_messagesender),to(defaults tonew_messageto),subject(str). -
MicromailClient.write_line(content: str)Write message line;
\r\nis appended tocontent. -
MicromailClient.send()Send current email.
-
MicromailClient.quit()Quit the SMTP server and disconnect from socket.
Functions
-
format_date(date: datetime) -> strReturn date formatted as email date string.
Exceptions
-
ErrorStandard module error.
-
NoSocketErrorRaised when an operation on the socket is asked but the client is not connected to any socket.
-
SMTPError(cmd: str, code: int, message: str)Raised when an unexpected SMTP response code is received.