Skip to main content

firstmail

Integrate firstmail.ltd emails into your Python applications with ease.

Pip module installs total downloadsRun Tests Upload Python Package to PyPI when a Release is Created

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 firstmail command isn't working in your terminal, use python -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 ⭐

Star History Chart

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)

Source distribution for firstmail 0.1.2
File Size Uploaded
firstmail-0.1.2.tar.gz 10.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for firstmail 0.1.2
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page