#email-attachments #attachment #cli

app smail

Cli tool to easily send emails with attachments

5 unstable releases

0.3.0 Mar 13, 2025
0.2.0 Nov 24, 2024
0.1.6 Oct 12, 2023
0.1.4 Nov 10, 2022

#38 in Email

Download history 13/week @ 2024-12-04 3/week @ 2024-12-11 4/week @ 2025-02-26 126/week @ 2025-03-12 8/week @ 2025-03-19

138 downloads per month

MIT license

19KB
361 lines

S-Mail Cli

Send emails with attachments and body content from the command line using your gmail account More accounts support coming soon


Usage

Instructions on how to get your Gmail app password

Run the following command to get instructions on how to get your Gmail app password

 smail instructions

Store your credentials

$ smail credentials -p smtp.gmail.com  -e myemail@gmail.com -c super-secret-password  # stores your credentials for future use this is encrypted

Send an email with a subject and file attachment

$ smail send -t recipient-email@gmail.com -s "Here is the pdf file" -a ./filename.pdf # send an email with a subject and an attachment

Send an email with a body

$ smail send -t recipient-email@gmail.com -s "Hello there" -b "This is the content of my email" # send an email with a subject and body

Send an email with both body and attachment

$ smail send -t recipient-email@gmail.com -s "Monthly Report" -b "Please find attached the monthly report" -a ./report.pdf # send an email with a subject, body, and attachment

List all credentials

smail list
# list all credentials ie
{
    "provider": "smtp.gmail.com",
    # Hashed password
    "password": "d29lZHJteGNxcHh3cmFyaA==",
    "email": "myemail@gmail.com",
}

Commands

   Cli tool to easily send emails with attachments

Usage: smail <COMMAND>

Commands:
 instructions  Get instructions on how to set up your credentials
 credentials   Store your email, password, and provider
 send          Send an email
 list          Get a list of all the credentials
 help          Print this message or the help of the given subcommand(s)

Options:
 -h, --help     Print help
 -V, --version  Print version

Redis Storage

  • Redis is used to store your email credentials securely. The email and provider are stored in plain text, while the password is encrypted before being saved.
  • Make sure you have Redis installed and running locally or configure it to use a Redis server in your environment.

Notes:

  • Security: Always ensure that your Redis server is secured and not accessible to unauthorized users.

TODO

  • Add support for more email providers
  • Add support for sending emails with multiple attachments
  • Add support for sending emails with body text
  • Add tests
  • refactor code to make it more modular

Dependencies

~11–40MB
~617K SLoC