# micromail ![](./logo.svg) Tiny SMTP client for Micropython. See [examples](examples) for usage. Inspired from [shawwwn/uMail](https://github.com/shawwwn/uMail). ## Installation ### Manual Copy the `micromail.py` file to your device. You will need to install the `datetime` library as well. ### MIP ```python >>> 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.