firstmail
Integrate firstmail.ltd emails into your Python applications with ease.
Server Info
- IMAP/POP3 host:
imap.firstmail.ltd - IMAP SSL:
993, POP3 SSL:995 - IMAP non-SSL:
143, POP3 non-SSL:110 - IP:
5.252.35.241
Installation
with pip
pip install firstmail
with uv
uv install firstmail
build from source
git clone https://github.com/nichind/firstmail.git
cd firstmail
pip install -e .
Python Usage
Using the context manager (recommended)
from firstmail import firstmail_client
with firstmail_client("your_email@firstmail.ltd", "your_password") as client:
# Get the most recent email
last_email = client.get_last_mail()
if last_email:
print(last_email.subject, last_email.sender)
# Get multiple emails (newest first)
emails = client.get_all_mail(limit=10)
print(f"Fetched {len(emails)} emails")
Manual resource management
from firstmail import FirstMail
client = FirstMail("your_email@firstmail.ltd", "your_password")
try:
print(client.get_message_count())
finally:
client.close()
Watch for new emails
from firstmail import firstmail_client
with firstmail_client("your_email@firstmail.ltd", "your_password") as client:
for new_email in client.watch_for_new_emails(check_interval=60):
print("New email:", new_email.subject)
# break # optionally exit after the first
CLI
[!NOTE] If the
firstmailcommand isn't working in your terminal, usepython -m firstmail <command>,uv run -m firstmail <command>, etc. instead.
Basic commands
# Read the most recent email
firstmail -e <email> -p <password> read-last
# Read all emails (limit to N)
firstmail -e <email:password> read-all --limit 10 --full
# Watch for new emails
firstmail watch --interval 60 --show-body
# Count messages in inbox
firstmail count
You can also pass credentials explicitly:
firstmail -e your_email@firstmail.ltd -p your_password read-last
Disclaimer
I'm not responsible for possible misuse of this software. Please use it in accordance with the law and respect the terms of service of the services you access.
Consider leaving a star ⭐
Metadata
Release files for firstmail 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| firstmail-0.1.2.tar.gz | 10.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| firstmail-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.5 kB
Release files / firstmail-0.1.2.tar.gz
| Download URL | firstmail-0.1.2.tar.gz |
|---|---|
| Size | 10.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
82993eb85f276b3bbae643279630fae054863dbd44e85a78f42df6036f49566c
|
|
BLAKE2b-256 checksum How to use checksums |
e972aa6afa09da7de5893d852c32e08928bda7ee409b6fe22502334e5113990c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2025.
Transparency logRelease files / firstmail-0.1.2-py3-none-any.whl
| Download URL | firstmail-0.1.2-py3-none-any.whl |
|---|---|
| Size | 10.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e398e4fcdd43973b56a08449d89692f95416490517418c31237aadb62ffdeab7
|
|
BLAKE2b-256 checksum How to use checksums |
638918fbc35a6e539200176571923a3f21fb7eadd53dc4546c24ee3e98718fdd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2025.
Transparency log