EMAIL(1)
π NAME π
okay bestie, we're looking at EMAIL(1) from the General Commands Manual, and the command's name is email β short for Encrypted SMTP email via Command line. She's giving terminal-girlie with a GPG keychain, and we're obsessed. This is part 1 of 2, so buckle up and don't touch that scrollback.
β¨ SYNOPSIS β¨
email [options] recipient1,recipient2,recipient3,...
π¦ DESCRIPTION π¦
email is a command line email client, similar to mailx, but with extra sparkle. The added features make it a more advanced client for sending email via the command line. It works with sendmail, just like mailx does β but email also lets you send to remote SMTP servers for delivery. It also works with GPG for encrypting and signing emails on the fly. Iconic, honestly.
email also incorporates a few other features too. These include signature files with wildcard options to specify the data, time, day, version, system, and even a fortune with the help of the fortune command. email also supports a very configurable address book, so you can specify a person's name with an email address and also place a group of names into one group for sending.
email supports attachments too. It will accept N attachments via a command line option and encode them with Base64 before sending them with the email.
email works with a configuration file named email.conf, which is found in /etc/email/email.conf β although that can be changed by specifying the --sysconfdir option during the ./configure. If you don't have or don't want a configuration file, you can specify the -r option to specify your SMTP server, and that will let you bypass using a configuration file and use default values instead. If you specify the -r option (listed below) and you do have a configuration file, it will still use the configuration file but override the SMTP_SERVER variable with whatever is used at the command line. Slay.
π OPTIONS π
There are a few possible options for email. The original lists them in order of relevance of usage, so we're keeping that exact order, bestie.
--help module,-h Module of Helpβ This option can be specified with a module of help topic, or without one. Without a module of help topic, it will just print a standard help screen with all your possible options. With a module of help option, it will display a more detailed discription of that module. Modules are determined by command line switches. For instance: if you want to know about theencryptcommand line option, you would specify--help 'encrypt'or--help 'e', and help will display the correct module help section. The Help is not statically programmed intoemail. Instead it is a file in email's home directory β the original says βcalled be rewritten with every release of email,β and yes, that's the actual wording, no cap β and it gets rewritten with every release ofemail.--verbose,-Vβ This option will display the progress of communicating with the SMTP server. A pretty progress bar will be displayed when data is sent. This option is replacing the old-quietoption that would do the exact opposite.--blank-mail,-blank-mail,-bβ Use this option if you would like to send a blank email from the command line. This is good if you just want to send a message with only the headers and no content.--subject subject,-subject subject,-s Subject of Emailβ This option should be rather obvious. You specify the subject of the email with this option. If you are not redirecting to standard input and you do not specify a subject,emailwill ask you for the subject. Null subjects are allowed.--encrypt,-encrypt,-eβ This option allows you to encrypt your email message usinggpg. GPG can be obtained by going to: (the original page just leaves that hanging, bestie β I'm not inventing a URL). When this option is specified, it will get the first recipient from the recipient list and it will encrypt the message using their key. This key MUST be present in order for the encryption to work properly.
π¨ no key, no encryption, no vibes β the key MUST be present, periodt.
--sign,-signβ This option will let you sign your emails on the fly... It uses thegpg --detach-signoption. It willsignthe email with your public key.--cc recipient,-cc recipient1,recipient2,recipient3,...β This option allows you to βcurtosy copyβ a list of recipients. Recipients can be from the address book or just plain email addresses. They should be comma delimited just as the main recipients will be. CC recipients will be posted in the headers and read by email clients.--bcc receipient,-bcc recipient1,recipient2,recipient3,...β Same as the--ccoption, but these recipients will not be posted in the headers of the email. This is a positive solution to βsecretlyβ copy someone on the email without the other recipients knowing so (Managers usually bcc their boss when sending an email to you about your performance and you'll never know it ).
π the --bcc receipient spelling is literally what the original says β I am not fixing her, I am respecting her.
--attach file,-a fileβ Attach a binary file. This option will allow you to attachNfiles to your email and will be base64 encoded upon delivery. This option is helpful if you need to send any type of file that is not plain ascii text. This option can be used multiple times to add multiple files to attach.--smtp-server server,-r serverβ This option will let you override the SMTP server that is specified in theemail.conffile... You can use this option if you do not have anemail.conffile. It will allow you to useemailwithout a configuration file. A helpful option to add with this option would be the--smtp-portoption, however, it is not needed.--smtp-port port,-p portβ This option works well with the above option as it will allow you to bypass the configuration file and specify a port on the command line. This is helpful if you don't have a configuration file yet need to specify an SMTP server and a port. The default port is always port25, so that if you don't specify this option, and you don't have anemail.conffile, it will default to port25for you.--smtp-auth type,-m typeβ You must specify this option to use SMTP AUTH if you aren't using a configuration file.typeis the type of AUTH your server lets you use. There are two supported AUTH types withemail:PLAINandLOGIN.--smtp-user user,-u userβ If you don't want to keep your SMTP username in youremail.conffile (SMTP_AUTH_USER), then you can use this command line option to specify it.--smtp-pass pass,-i passβ If you don't want to keep your SMTP password in youremail.conffile (SMTP_AUTH_PASS), then you can use this command line option to specify it.--from-name name,-n nameβ This option will overrideMY_NAMEinemail.conf. This is what the recipient will see in the from field of their email client.--from-addr addr,-f addrβ This option will overrideMY_EMAILinemail.conf. This is what the recipient will see in the from field of their email client as your email address.--conf-file fileβ Use this option to specify a configuration file other than~/.email.confor/etc/email/email.conf.--header string,-H string,string,string,...β If you would like to append headers to the message that you are sending, you can use this option multiple times and specify the header you would like to append as well as delimit each header string with a comma for multiple headers. An example of a header string would look like:
--header "X-My-Header: Stuff goes here"
--timeout secs,-x secsβ Set a timeout (in seconds) on the socket. This is helpful if you would like to have the client stop trying to send/recv data from the SMTP server if it hangs after a period of time.--high-priority,-oβ This option allows you to take advantage of using the priority option used by some email clients. If the option is specified when sent to a user using MS Outlook, a small exclimation mark will be next to the message as to let the user know this email is important.--htmlβ This option allows you to send HTML emails. As of right now, you need to write your own HTML.--gpg-pass , -g passβ If you don't want to keep your GPG password in youremail.conffile (GPG_PASS), then you can use this command line option to specify it.--tlsβ If you'd like to use TLS/SSL communication with the SMTP server, use this option (if it's not already set in the config file).--no-encodingβ If you don't wanteMailto automatically use UTF-8 encoding when finding non ascii characters, use this option.
π CONFIGURATION π
okay so configuring email is actually pretty simple, bestie. Just open the default configuration file. If you didnβt specify an email home directory when you compiled email, then itβll be in /etc/email and the file is called email.conf. The config options are all listed below, no cap:
SMTP_SERVERβ server name, or IPSMTP_PORTβ serverβs port numberSENDMAIL_BINβ specify thesendmailbinary path and optionsMY_NAMEβ specify your nameMY_EMAILβ specify your email addressREPLY_TOβ separate reply-to addressSIGNATURE_FILEβ your signature fileSIGNATURE_DIVIDEβ a design for a dividerADDRESS_BOOKβ location of your address book fileSAVE_SENT_MAILβ directory to saveemail.sentfileGPG_BINβ full path togpgbinaryGPG_PASSβ optional passphrase forgpgTEMP_DIRβ specify where to store temp filesSMTP_AUTHβ specify what type of authentication for your SMTP serverSMTP_AUTH_USERβ specify a username login for SMTP AUTHSMTP_AUTH_PASSβ specify a password for SMTP AUTHUSE_TLSβ Boolean (true/false) if you want to use TLS/SSLVCARDβ specify a vcard to attach to each message
You can choose to use sendmail instead of a remote SMTP server. All you have to do is input the path of where you have sendmail located in the SENDMAIL_BIN variable. You may also provide options to pass sendmail. The best values for this would be /usr/lib/sendmail -t -i. If you have both SENDMAIL_BIN and SMTP_SERVER uncommented and both have values, then SMTP_SERVER will take precedence over SENDMAIL_BIN and email will try to contact the SMTP server provided. π
You can create your own email.conf file in your home directory. It must be a hidden file. For instance: ~/.email.conf
email will look in your home directory before it looks for a global configuration file. The easiest thing to do is simply copy your global config file to your home directory as .email.conf and edit it as needed. π«Ά
If you donβt have a global config file or a personal config file, email will choose defaults according to your current login on the system. So a configuration file is not mandatory β it just helps you customize email. β¨
You can look at the basic configuration file for more information on the configuration of email.
π SMTP AUTH π
email now supports SMTP AUTH. Iβll briefly describe how it works here, bestie.
To use email with an SMTP server that expects authentication, you must set a few options in your email.conf file. These options are: SMTP_AUTH, SMTP_AUTH_USER, SMTP_AUTH_PASS.
SMTP_AUTH
This option must be set to one of the two: LOGIN or PLAIN. LOGIN and PLAIN are standard RFC compliant SMTP AUTH protocols. If youβre unsure which option to choose, ask your ISP or SMTP Administrator if any of these are supported. Usually itβs a safe bet to use LOGIN for SMTP AUTH. Most AUTH servers support LOGIN. π
SMTP_AUTH_USER
If youβre using SMTP AUTH, please specify your username here. This option is mandatory if youβre using SMTP AUTH. no skipping it, fr fr.
SMTP_AUTH_PASS
You can choose to set this option or not. However, if you donβt set this option, email will prompt you for your password before proceeding. So if youβre using email from a cron job and donβt expect any interaction with email, please set this option! π
USE_TLS
This option allows you to use TLS/SSL to communicate with your SMTP server. This is the most basic use of TLS/SSL possible. Please be advised that not much is done to verify the certificate from the server. Also, currently there is no support for providing your own certificate for the server to authenticate since typical TLS does not do this.
π«Ά lowkey important caveat: the TLS/SSL support here is basic. It does not do much certificate verification, and you canβt provide your own certificate for the server to authenticate β typical TLS doesnβt do that anyway.
πΈ ENVIRONMENT VARIABLES πΈ
Two environment variables can be set that email will check.
EDITOR will allow you to specify your favorite editor to use with email for constructing messages. If this variable is not set, it will default to vi. β¨
TMPDIR can be set to specify a temporary directory to place your temp files while email is working. This is analogous to the TEMP_DIR variable in email.conf. environment variable TMPDIR for a temporary directory. If neither contains a value, email defaults to /tmp. π
π¦ ADDRESS BOOK π¦
The address book for email takes on the format as described below. It will check for any syntax errors in the address book and completely stop email if it finds any, so try to keep the same grammatical syntax. A single entry in the address book will look like:
single: Tim = tim@somedomain.org #Comments allowed
You are welcome to use a whole name with spaces as long as you use a single quote closing the name with another single quote. You may also use double quotes in place of the single quotes. Example:
single: 'Tim Gahan' = tim@somedomain.org
Groups are allowed and can only consist of comma delimited single entries from the file and may contain spaces. You can not recursively specify groups. You may, however, specify single email addresses that are not part of the address book. π
If you would like to break one line into two lines, you should use the \ as a newline escape mark. Examples:
group: Mygroup = 'Tim Gahan', John, Sam, Bob, \
tookie@somedomain.org
This example will specify a group with the single entries of 'Dean Jones', John, Sam, Bob, and the unadded email address of 'software@somedomain.org'. π yes, thatβs exactly what the page says β keep the vibes, keep the details.
π SIGNATURE FILE π
The signature file is specified in the configuration file. You will also have the option to specify a signature divider. This is by default '---'. This just divides the signature file from the rest of the email. β¨
There are a few wild cards that you can specify in writing your signature file that will allow your signature file to obtain dynamic options when sending your email.
%vβ this will show the version ofemail%tβ this will show the time the email was sent%dβ this will display the date the email was sent%cβ this will display a completely formatted date and time%hβ this will display the host type%fβ this will display the output of thefortunecommand
π SIGNATURE EXAMPLE π
Example of a signature file is below:
This email was sent with 'email %v'
Sent on host: %h
At the time : %c
Your fortune for today is:
%f
This will end up replacing the %v, %h, %c, and %f with their corresponding equivalents above respectively. slay. π
π₯ EXAMPLES OF USAGE π₯
# Redirect your message to email
email -s "Sending this.txt" tim@somedomain.org < this.txt
# Make your message with email
email -s "Subject" tim@somedomain.org
# Encrypt and email to "Dean Jones"
email -s "Encryted" -encrypt tim@somedomain.org
# Multiple Recipients from address book
email -s "no subject" Dean,Jeff,Tom,Bob -cc Josh,Carl
# Attach some files with your message
email -s "files attached" Dean,Jeff --attach
stuff.tar.gz,readme.doc
π BUGS π
If you find any in this program, please submit them to
http://www.cleancode.org/projects/email/contact
π AUTHORS π
Dean Jones β http://www.cleancode.org/projects/email/contact
π THANKS FOR RELEASE V3.0 π
Philip Lewis β helped in debugging. π«Ά
π COPYRIGHT π
(C) 2001 - 2008
π and thatβs a wrap on EMAIL(1), bestie β source/version vibes are EMAIL(1) / release V3.0, date vibes are (C) 2001 - 2008. periodt. π
π¦ where this page comes from
- alpine 3.22: email-doc 3.1.4-r13 Β· GPL-2.0-or-later
- alpine 3.23: email-doc 3.1.4-r14 Β· GPL-2.0-or-later
- alpine 3.24: email-doc 3.1.4-r14 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms