Skip to main content

Firstmail IMAP client

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firstmail-0.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firstmail-0.1.0-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file firstmail-0.1.0.tar.gz.

File metadata

  • Download URL: firstmail-0.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for firstmail-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5fba3af5d4110fc598238c60bae6dcafe089a8b37f5f3abd1ccf24c37f34b230
MD5 97673192cdd89fb802768a95413f8556
BLAKE2b-256 97656ce20c26d7502336dbcecfbadab522fa0c2791da8d092cfacc273aa31ac9

See more details on using hashes here.

Provenance

The following attestation bundles were made for firstmail-0.1.0.tar.gz:

Publisher: publish.yml on nichind/firstmail

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file firstmail-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: firstmail-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for firstmail-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e4f50edd026d47b1d9e7a8c1c3a8af3f080a4388b090589db4bcee57bf379fe
MD5 55518d0956752fbdb872b37a32282426
BLAKE2b-256 7fb9a10f085fad6b5555dceca332dcc6ef7cd3d2f542b0a08e1df1978ddeff71

See more details on using hashes here.

Provenance

The following attestation bundles were made for firstmail-0.1.0-py3-none-any.whl:

Publisher: publish.yml on nichind/firstmail

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page