Tiny SMTP client for Micropython
Find a file
2025-05-17 20:53:53 +02:00
.forgejo/workflows Refactor release workflow to streamline file preparation and update README for clearer installation instructions 2025-05-17 20:53:53 +02:00
examples Update README and example.py for clarity and consistency in message writing 2025-05-17 20:10:14 +02:00
micromail Update README and MicromailClient to enhance documentation and ensure socket closure on quit 2025-05-17 20:46:38 +02:00
.gitignore Add examples/local.py to .gitignore 2025-05-16 23:18:51 +02:00
.pre-commit-config.yaml Initialize micromail project with basic structure and functionality 2025-05-16 23:06:10 +02:00
LICENSE Initial commit 2025-05-16 19:23:27 +02:00
logo.svg Initialize micromail project with basic structure and functionality 2025-05-16 23:06:10 +02:00
package.json Add package.json to define project dependencies and versioning 2025-05-16 23:16:59 +02:00
README.md Refactor release workflow to streamline file preparation and update README for clearer installation instructions 2025-05-17 20:53:53 +02:00

micromail

Tiny SMTP client for Micropython. See examples for usage.

Inspired from shawwwn/uMail.

Installation

Manual

Copy the micromail folder to your device.

MIP

>>> import mip
>>> mip.install("https://code.edgarpierre.fr/edpibu/micromail/releases/download/latest/")

Documentation

Class MicromailClient

class micromail.MicromailClient(host: str, port: int, 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. PLAIN and LOGIN authentication methods are currently supported.
MicromailClient.write(data: bytearray)
Write data of type bytearray on the server.
MicromailClient.send_command(*cmd: bytearray) -> code: bytearray, response: list[bytearray]
Send command to the SMTP server; returns status code and response.
MicromailClient.ehlo() -> res: list[bytearray]
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: None|str=None)
Create a new email; sender defaults to username.
MicromailClient.headers(headers:dict={})
Define email headers; supported headers are date (str|datetime, defaults to datetime.now()), from (str, defaults to new_message sender), to (str|list[str], defaults to new_message to), subject (str).
MicromailClient.write_line(content:str|bytearray)
Write message line; \r\n is appended to content.
MicromailClient.send()
Send current email.
MicromailClient.quit()
Quit the SMTP server and disconnect from socket.

Functions

format_date(date: datetime)
Return date formatted as email date string.