4 Ways to Send Email Attachment from Linux Command Line

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.95/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Aaron Kili

Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

14 Responses

  1. Gregory Guthrie says:

    Your mutt example doesn’t work with current mutt versions (on Debian), the list of files to attach (-a option) must be terminated by a double-dash (--), so your example tries to find the target address as an additional file to attach.

    From the mutt -h help options:
    -a […] — attach file(s) to the message
    the list of files must be terminated with the “–” sequence

  2. Gregory Guthrie says:

    Current Debian mail &mailx have no -A option, and the -a is for additional headers, not attachments.

    • Aaron Kili says:

      @Gregory

      We will cross check this. Thanks for the heads up.

    • sedlav says:

      $ cat /etc/redhat-release
      CentOS Linux release 7.3.1611 (Core)

      $ man mailx

      MAILX(1) User Commands MAILX(1)

      NAME
      mailx – send and receive Internet mail

      SYNOPSIS
      mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h hops] [-A account] [-S variable[=value]] to-addr . . .
      mailx [-BDdeEHiInNRv~] [-T name] [-A account] [-S variable[=value]] -f [name]
      mailx [-BDdeEinNRv~] [-A account] [-S variable[=value]] [-u user]

      DESCRIPTION
      Mailx is an intelligent mail processing system, which has a command syntax reminiscent of ed(1) with lines replaced by messages…

      The following options are accepted:

      -A name
      Executes an account command (see below) for name after the startup files have been read.

      -a file
      Attach the given file to the message.

      • Gregory Guthrie says:

        on current release of Debian:

        MAIL(1) BSD General Commands Manual MAIL(1)

        NAME
        mail, mailx, Mail — send and receive mail

        SYNOPSIS
        mail [-dEIinv] [-a header] [-b bcc-addr] [-c cc-addr] [-r from-addr] [-s subject] [–] to-addr …
        mail [-dEIiNnv] -f [file]
        mail [-dEIiNnv] [-u user]

        DESCRIPTION
        mail is an intelligent mail processing system which has a command syntax reminiscent of ed(1) with
        lines replaced by messages.

        The options are as follows:

        -a Specify additional header fields on the command line such as “X-Loop: [email protected]” etc. It can
        be also used to override MIME headers mail adds by default to each outgoing mail, see
        Character sets and MIME below. You have to use quotes if the string contains spaces. This
        argument may be specified more than once, the headers will then be concatenated.

  3. Robert says:

    uuencode is an option I’ve used in the past.

  4. NotMe says:

    Yeah, that is nice, but could we have some shell stuff and some programmers sweets…

    • Aaron Kili says:

      @NotMe

      I seem not to get what you mean here, but there is nothing more than the commands we can offer you. Simply try them out and in case of any errors, let us know. If this has not answered your question yet, try to get back and explain it in simple terms.

  5. sedlav says:

    I think 1 and 3 are the same due mail must be a soft link to mailx also you can use sendEmail (http://caspian.dotconf.net/menu/Software/SendEmail/):

    sendEmail -f '[email protected]' -t [email protected]
    -u 'Hello' -m 'this is a test message'  -s smtp.lb.net -a attachment-file
    
  6. keithterrill says:

    On my Linux Mint 17.3 I already had “mail” installed. Attempting to follow the instructions this error occurs:

    ——————————————————————————————————————
    $ Please install an MTA on this system if you want to use sendmail!
    ——————————————————————————————————————

    It would be nice to have been informed about how to install an MTA, etc.

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *