从 Linux 终端一行发送邮件

我知道在 Linux 中有一个命令 mail可以通过命令行发送电子邮件。我怎样才能发送一个简单的电子邮件与一行从终端虽然?

例如:

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

是否在没有任何确认或提示的情况下将邮件发送给用户?

原因是,我想通过电子邮件发送一个简短的信息给自己时,一个具体的事件发生在 java程序。这个想法是,我将使用 Runtime.getRuntime()... 等发送的 mail command从我的 java程序。

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

438690 次浏览

Mail 可以代表 Linux 系统上的许多程序。你想要的背后是 发邮件或者 后缀。我推荐后者。

您可以通过您最喜欢的软件包管理器安装它。然后你必须配置它,一旦你这样做了,你可以像这样发送电子邮件:

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

有关详细信息,请参阅手册。

至于如何配置后缀,互联网上有很多关于如何配置后缀的文章。 除非您使用的是注册域名的公共服务器,否则通常希望将电子邮件转发到可以发送电子邮件的 SMTP 服务器。

例如,对于 gmail,可以这样做 Http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ 或者其他类似的教程。

您可以使用带有管道的回显来避免提示或确认。

echo "This is the body" | mail -s "This is the subject" user@gmail.com

你也可以使用 sendmail:

/usr/sbin/sendmail user@domain.com < /file/to/send
echo "Subject: test" | /usr/sbin/sendmail user@domain.com

这使您可以在一个命令行中执行此操作,而不必回显文本文件。这个答案建立在@mti2935的答案之上。所以功劳归他。

发送简单邮件:

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

Ctrl + D完成

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

对于 Ubuntu-:

$ sudo apt-get install -y mailutils

对于森托来说-:

$ sudo yum install -y mailx

测试邮件命令-:

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

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

sudo apt-get install mailutils

安装一个电子邮件服务器,如果你正在使用 gmail 或 smtp.follow 这个链接。然后使用这个命令发送电子邮件。

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

如果你正在使用 gmail,但仍然会收到一些验证错误,那么你需要更改 gmail 的设置:

打开访问不太安全的应用程序 从这里