从linuxterminal发送邮件一行

我知道有在Linux命令邮件通过命令行发送电子邮件。 我怎样才能从terminal发送一个简单的电子邮件,但是呢?

例如:

 mail user@gmail.com [subject] [body] 

并没有任何确认或提示给用户发送电子邮件?

原因是,当一个java程序中发生特定事件时,我想通过电子邮件向我发送简短的消息。 这个想法是,我将使用Runtime.getRuntime()等等从我的java程序发送mail command

我过去使用cron来做类似的事情,但是当前的实现不使用cron ,所以我需要尝试一下。

邮件可以代表相当多的Linux系统上的程序。 你想要的东西是sendmail或者postfix 。 我推荐后者。

你可以通过你喜欢的包pipe理器来安装它。 然后你必须configuration它,一旦你完成了,你可以发送这样的电子邮件:

  echo "My message" | mail -s subject user@gmail.com 

有关更多信息,请参阅手册。

就configurationpostfix而言,网上有很多关于如何去做的文章。 除非你在一个拥有注册域的公共服务器上,否则你通常需要将电子邮件转发到一个可以发送电子邮件的SMTP服务器。

例如,对于Gmail,请按照http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/或任何其他类似的教程。;

你可以在pipe道中使用echo来避免提示或确认。

 echo "This is the body" | mail -s "This is the subject" user@gmail.com 
 echo "Subject: test" | /usr/sbin/sendmail user@domain.com 

这使您可以在一个命令行中执行,而不必回显文本文件。 这个答案build立在@ mti2935的回答之上。 所以信贷去那里。

你也可以使用sendmail:

 /usr/sbin/sendmail user@domain.com < /file/to/send 

对于Ubuntu用户:首先你需要安装mailutils

 sudo apt-get install mailutils 

设置电子邮件服务器,如果您使用Gmail或SMTP。 按照这个链接 。 然后使用此命令发送电子邮件。

 echo "this is a test mail" | mail -s "Subject of mail" username@domain.com 

如果您使用的是Gmail,但仍然遇到一些authentication错误,那么您需要更改gmail的设置:

从这里打开访问安全性较低的应用程序

您可以使用下面的命令在Ubuntu中安装邮件包。

对于Ubuntu – :

 $ sudo apt-get install -y mailutils 

对于CentOs-:

 $ sudo yum install -y mailx 

testing邮件命令 – :

 $ echo "Mail test" | mail -s "Subject" youremail@domain.com 

发送简单邮件:

 $ mail -s "test message from centos" recipient@example.com hello from centos linux command line 

Ctrl + D完成