Tiny SMTP client for Micropython
Find a file
2025-05-17 22:07:26 +02:00
.forgejo/workflows Bump version to 0.1.3 and ensure prerelease flag is set in release workflow 2025-05-17 22:07:26 +02:00
examples Remove newline characters from message content in example scripts 2025-05-17 21:43:27 +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
micromail.py Remove debug print statement for features in MicromailClient 2025-05-17 21:47:31 +02:00
package.json Bump version to 0.1.3 and ensure prerelease flag is set in release workflow 2025-05-17 22:07:26 +02:00
README.md Update installation instructions to include requirement for datetime library 2025-05-17 21:08:03 +02:00

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, 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.