从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完成