Skip to main content

Dead simple IMAP CLI client

Project description

📧 myl

myl is a dead simple IMAP CLI client hosted on GitHub at https://github.com/pschmitt/myl

📝 Description

myl is a command-line interface client for IMAP, designed to provide a straightforward way to interact with IMAP servers.

⭐ Features

  • Simple command-line interface
  • Support for various IMAP operations
  • Autodiscovery of the required server and port
  • Support for Google IMAP settings
  • Fetch a specific number of messages
  • Mark messages as seen
  • Fetch messages from a specific folder
  • Search for specific strings in messages
  • Output HTML email
  • Output raw email
  • Fetch a specific mail by ID
  • Fetch a specific attachment

🚀 Installation

To install myl, follow these steps:

pipx install myl
# or:
pip install --user myl

on nix you can do this:

nix run github.com:pschmitt/myl

🛠️ Usage

Here's how you can use myl:

myl --help

This command will display the help information for the myl command.

Here are some examples of using flags with the myl command:

# Connect to an IMAP server
myl --server imap.example.com --port 143 --starttls --username "$username" --password "$password"

# Use Google IMAP settings
myl --google --username "$username" --password "$password"

# Autodiscovery of the required server and port
myl --auto --username "$username" --password "$password"

# We won't repeat the server connection flags from here
alias myl="command myl --auto --username \"$username\" --password \"$password\""

# Fetch a specific number of messages
myl --count 5

# Mark messages as seen
myl --mark-seen

# Fetch messages from a specific folder
myl --folder "INBOX"

# Search for specific strings in messages
myl --search "important"

# Fetch a specific mail ID
myl "$MAILID"

# Show HTML
myl --html "$MAILID"

# raw email
myl --raw "$MAILID" > email.eml

# Fetch a specific attachment (outputs to stdout)
myl "$MAILID" "$ATT" > att.txt

Please replace imap.example.com, $username, $password, $MAILID, and $ATT with your actual IMAP server details, username, password, mail ID, and attachment name.

📜 License

This project is licensed under the GPL-3.0 license.

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

myl-0.9.1.tar.gz (45.8 kB view details)

Uploaded Source

Built Distribution

myl-0.9.1-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

File details

Details for the file myl-0.9.1.tar.gz.

File metadata

  • Download URL: myl-0.9.1.tar.gz
  • Upload date:
  • Size: 45.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for myl-0.9.1.tar.gz
Algorithm Hash digest
SHA256 108a01de8a4e255c78ec7818dda631096f4e204699b40b8370e145a0beb11cd9
MD5 686d43f173c4f6adb5d150fe319712b7
BLAKE2b-256 fb49487bb43c9a24a4583e74170e2c9c2484c6d9a03a782de3d7720db79cf3d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for myl-0.9.1.tar.gz:

Publisher: pypi.yaml on pschmitt/myl

Attestations:

File details

Details for the file myl-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: myl-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 31.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for myl-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 95599d3b45193d97c2156b35d4ff3605416400dc7c3b8e4333340e9f70b59e43
MD5 8073f6d4db587c996222d599ca2f3403
BLAKE2b-256 ee770997b8a8d2538638aaee686f55071f8c621eacc25f2758b8cf66ae1e7a74

See more details on using hashes here.

Provenance

The following attestation bundles were made for myl-0.9.1-py3-none-any.whl:

Publisher: pypi.yaml on pschmitt/myl

Attestations:

Supported by

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