sending mail from linux commad line

1

1

Is it possible to send mail from linux terminal to any gmail account.

If possible then what are the configuration are needed.

I tried with mailx and sendmail but its not working.

I also tried with mutt like this

echo "test" | mutt -s this-is-my-subjest XXXXX@gmail.com

but no use...

I am using CentOS 6.2

max

Posted 2012-08-17T14:00:13.823

Reputation: 3 329

Pulling from a file is effective: echo "email from serverX" > ~/testemail; then: mail -s 'another test subject' youremail@gmail.com < ~/testemail – Kzqai – 2015-03-10T23:16:24.083

What is not working? Do you get an error message? Have you checked any log files? – Emil Vikström – 2012-08-17T14:29:11.940

I am not getting any error msg. but not getting mail also. – max – 2012-08-17T14:32:46.197

You should be able to find a log file in /var/log/. It is often called maillog or similar. What does it say after you try your command? – Emil Vikström – 2012-08-17T14:35:29.373

nothing, next command prompt will appear. – max – 2012-08-17T14:37:05.147

in var/log/maillog its showing Network is unreachable – max – 2012-08-17T14:48:14.967

Answers

4

I would advise to use sendEmail:

sendEmail-1.56 by Brandon Zehm <caspian@dotconf.net>

Synopsis:  sendEmail -f ADDRESS [options]

  Required:
    -f ADDRESS                from (sender) email address
    * At least one recipient required via -t, -cc, or -bcc
    * Message body required via -m, STDIN, or -o message-file=FILE

  Common:
    -t ADDRESS [ADDR ...]     to email address(es)
    -u SUBJECT                message subject
    -m MESSAGE                message body
    -s SERVER[:PORT]          smtp mail relay, default is localhost:25

  Optional:
    -a   FILE [FILE ...]      file attachment(s)
    -cc  ADDRESS [ADDR ...]   cc  email address(es)
    -bcc ADDRESS [ADDR ...]   bcc email address(es)
    -xu  USERNAME             username for SMTP authentication
    -xp  PASSWORD             password for SMTP authentication

  Paranormal:
    -b BINDADDR[:PORT]        local host bind address
    -l LOGFILE                log to the specified file
    -v                        verbosity, use multiple times for greater effect
    -q                        be quiet (i.e. no STDOUT output)
    -o NAME=VALUE             advanced options, for details try: --help misc
        -o message-content-type=<auto|text|html>
        -o message-file=FILE         -o message-format=raw
        -o message-header=HEADER     -o message-charset=CHARSET
        -o reply-to=ADDRESS          -o timeout=SECONDS
        -o username=USERNAME         -o password=PASSWORD
        -o tls=<auto|yes|no>         -o fqdn=FQDN


  Help:
    --help                    the helpful overview you're reading now
    --help addressing         explain addressing and related options
    --help message            explain message body input and related options
    --help networking         explain -s, -b, etc
    --help output             explain logging and other output options
    --help misc               explain -o options, TLS, SMTP auth, and more

It works very well for me. Remember to use TLS with gmail. You need to provide details of the server that will send the email with those options:

    -s SERVER[:PORT]          smtp mail relay, default is localhost:25
    -xu  USERNAME             username for SMTP authentication
    -xp  PASSWORD             password for SMTP authentication

It's best for me as it allows to add attachments and can be easily placed in the scripts.

Example usage:

sendEmail -f x1user@gmail.com -t x2user@gmail.com -s test -m messageBody -s smtp.gmail.com -xu x1user@gmail.com -xp xxxxxpass -o tls=auto
Aug 17 16:21:37 z sendEmail[22420]: Email was sent successfully!

mnmnc

Posted 2012-08-17T14:00:13.823

Reputation: 3 637

can u provide one simple example? – max – 2012-08-17T14:19:17.597

1sure i will place it in the answer at the bottom – mnmnc – 2012-08-17T14:22:33.717

sendmail can do much more thing that mailto, but I found it's use rather complicated, I use sendmail in alertscript to get everything, but to just send a mail, mailto is rather simple I think. Like using a rifle to shoot a mosquito for me. – Anarko_Bizounours – 2012-08-17T14:31:54.870

possibly. but what you probably missed - i'm proposing send-E-mail. not sendmail. i've never had a chance to use sendmail but sendEmail does everything i need. – mnmnc – 2012-08-17T14:37:31.537

no sendEmail command installed, so I tried yum install sendEmail but its giving No package sendEmail available – max – 2012-08-17T14:39:06.957

download link : http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz unzip it, then ./configure ./make ./make install

– mnmnc – 2012-08-17T14:40:33.000

3

The mail terminal program should do the trick. It usually works "straight out of the box" to allow users/programs to send messages locally, inside the system.

Type mail -s 'subject line' someone@gmail.com and hit return. Then type your message and close/send using Ctl-D.

danielcraigie

Posted 2012-08-17T14:00:13.823

Reputation: 2 451

I tried this but not working... any configuration are needed, before doing this? – max – 2012-08-17T14:23:03.427

1Can you try sending an email to yourself on the machine: mail -d -s subject your name@localhost. The -d option will provide debugging output to tell you what is causing the problem. – danielcraigie – 2012-08-17T14:28:30.973

On some systems you have to use mailx instead of mail. – mdpc – 2012-08-17T19:35:02.733

0

normally you don't have to any specific configuration, centos got by default a mail server.

If i recall the command is mailto then type the information (from, subject etc,...) and type your text, and when you've finished typing type ctrl+D, you'll get EOT.

Be aware that you mail server will use your user information, something like that from : user@pcname but I'm not on my linux today so I can't check that.

Hope this will help.

EDIT :

there the link to O'reilly man page : there

Anarko_Bizounours

Posted 2012-08-17T14:00:13.823

Reputation: 280