转自: http://www.61dh.com/blog/2009/01/ubuntu.html
参考: http://phosphorusandlime.blogspot.com/2008/05/ubuntu-command-line-email.html
我在一部冗余的笔记本电脑(Compaq Presario R3000, 显示屏坏了)上装了Ubuntu+Apache+PHP,平时主要用来调试代码。此外还有一个重要的用途:我在上面运行一些Cron Job, 用来更新网站开发日志的日志分类栏目。虽然每次运行结果都会被存在LOG文件里,但是有时Cron Job运行会出错,为了在第一时间里发现问题,我希望可以通过Email把运行结果发到我常用的邮箱里。
Ubuntu命令行发送邮件的方法很多,如果Google一下,可以找到象mailx,mutt,nail等邮件客户端。但是安装以后,尝试通过它们放送邮件到Gmail或者Hotmail,却得到“Mailing to remote domains not supported”的错误信息。认真研究一下,发现问题出在我的Ubuntu缺少完善的邮件服务器(MTA)。可是我的Ubuntu挂在自家的局域网上,没有固定IP,要搭建一个功能完善的邮件服务器估计不是很容易。(P.S.我在常用的Linux命令集一文里介绍了如何在命令行发送邮件,但是这适合于与安装有邮件服务器的终端,要不然的话,就只可以在本地内发送) 但是我想或许可以通过Gmail在命令行上发送邮件,上网Google了一下,终于找到了一个和我有相同问题的人,不同的是他还提供了详细的解决方案。很简单只需照猫画虎,就可以实现从命令行发送邮件到远端了。原文是英文的,我稍作翻译如下,希望对一些人有所帮助。
1. 安装所需的软件
$ sudo apt-get install msmtp
$ sudo apt-get install nail
2. 安装Gmail的Thawte证书
$ mkdir -p ~/etc/.certs
$ chmod 0700 ~/etc/.certs
$ cd ~/etc/.certs
$ wget https://www.verisign.com/support/thawte-roots.zip --no-check-certificate
$ unzip thawte-roots.zip
$ cp Thawte\ Server\ Roots/ThawtePremiumServerCA_b64.txt ThawtePremiumServerCA.crt
3. 配置msmtp,我是用Vim打开的,原文使用gedit
$ gedit ~/.msmtprc
这将打开一个空白文档,你只需把下面大写部分改为你的个人设置后粘帖即可。因为我只想使用gmail account,所以我没有设置isp account,并且把account default改为gmail。 别忘了改“USER”!!!
# config options: http://msmtp.sourceforge.net/doc/msmtp.html#A-user-configuration-file
defaults
logfile /tmp/msmtp.log
# isp account
account isp
auth login
host SMTP.YOURISP.COM
port 25
user YOURNAME@ISP.COM
from YOURNAME@ISP.COM
password *****
# gmail account
account gmail
auth on
host smtp.gmail.com
port 587
user YOURNAME@gmail.com
password *****
from YOURNAME@gmail.com
tls on
tls_trust_file /home/USER/etc/.certs/ThawtePremiumServerCA.crt
# set default account to use (from above)
account default : isp
4. 更改msmtprc文件的许可
$ chmod 600 ~/.msmtprc
5. 配置nail,我是用Vim打开的,原文使用gedit
$ gedit ~/.mailrc
这将打开一个空白文档,你只需把下面大写部分改为你的个人设置后粘帖即可。因为我只想使用gmail account,所以我没有设置isp account。
# set smtp for nail
# ref: http://ubuntuforums.org/showpost.php?p=4531994&postcount=6
# docs: http://msmtp.sourceforge.net/doc/msmtp.html#Configuration-files
# isp account (default)
# $ nail -s "subject line" -a /path/file recipient@email.com < /path/body.txt
set from="YOURNAME@ISP.COM"
set sendmail="/usr/bin/msmtp"
set message-sendmail-extra-arguments="-a isp"
# gmail account
# $ nail -A gmail -s "subject line" -a /path/file recipient@email.com < /path/body.txt
account gmail {
set from="YOURNAME@gmail.com (YOURNAME)"
set sendmail="/usr/bin/msmtp"
set message-sendmail-extra-arguments="-a gmail"
}
搞定!!!
发送测试:
$ echo -e "testing email from the command line" > /tmp/test_email
$ nail -s "isp test" YOURNAME@gmail.com < /tmp/test_email
$ nail -A gmail -s "gmail test" YOURNAME@gmail.com < /tmp/test_email
Log文件在:/tmp/msmtp.log
分享到:
相关推荐
Ubuntu 命令行使用指南 Ubuntu 作为一个流行的 Linux 发行版,提供了强大的命令行工具来管理和维护系统。下面是 Ubuntu 命令行使用指南,涵盖了基本命令、APT 软件包管理工具、安装和卸载软件包等方面的知识点。 ...
ubuntu 命令行更新软件,apt-get 使用说明
Ubuntu 命令行大集合 Ubuntu 命令行是 Linux 系统中最基本也是最重要的命令行工具之一。通过学习和掌握这些命令,我们可以更好地使用 Ubuntu 操作系统,提高工作效率和生产力。 一、APT 的使用(Ubuntu Linux ...
### Ubuntu Linux 下如何使用终端命令行上网 在 Ubuntu Linux 系统中,用户可以通过命令行进行许多操作,包括浏览互联网。对于那些希望在不启动图形界面浏览器的情况下访问网络资源的人来说,这是一种非常有用的...
ubuntu Ubuntu 命令行教程.docx
### Ubuntu纯命令行模式登录详解 #### 一、引言 Ubuntu是一款基于Debian的Linux发行版,以其易用性和广泛的社区支持而受到广大用户的喜爱。对于那些希望提高系统性能或减少图形界面带来的资源消耗的用户来说,选择...
在Linux世界中,Ubuntu是一个非常流行的开源操作系统,尤其受到开发者和技术爱好者的喜爱。Ubuntu的主要交互方式之一就是命令行界面,也称为终端或控制台。本教程将带你深入理解Ubuntu命令行的基本用法,这对于系统...
因此,我将基于给定的标题和描述,结合我所掌握的知识,为您详细介绍Ubuntu命令行的基本概念和常用知识点。 Ubuntu命令行是基于Linux操作系统的命令行接口,它允许用户通过键盘输入一系列的命令来与计算机进行交互...
ubuntu 命令行打开 root权限登录
在Linux环境下,尤其是Ubuntu操作系统中,使用命令行工具发送电子邮件是一种非常实用的功能。本文将详细介绍如何在Ubuntu系统中利用`mail`命令来发送邮件,并提供了详细的步骤和配置指南。 #### 二、环境准备与配置...
在Ubuntu系统中,有时我们可能希望在命令行环境中管理我们的浏览器书签,以实现更高效、更便捷的操作。本文将详细介绍如何使用Buku这款命令行书签管理器,以及其安装、导入导出、搜索和加密等核心功能。 首先,让...
Ubuntu 设置命令行界面和图形界面切换方法 Ubuntu 操作系统中,命令行界面和图形界面是两个不同的操作模式。命令行界面是基于文本的命令行模式,用户需要通过命令行来操作系统,而图形界面则是基于图形用户界面的...
### Ubuntu命令行下的w3m浏览器使用指南 #### 一、引言 在Linux环境下,尤其是对于那些喜欢在命令行环境中工作的用户来说,能够通过命令行进行网页浏览是一种非常便捷的功能。w3m正是这样一款小巧而强大的命令行...
在Ubuntu Linux系统中,命令行界面,也称为终端或控制台,是系统管理、软件安装和问题排查的主要工具。这个简明教程将带你探索Ubuntu命令行的强大功能,帮助你更高效地与操作系统交互。 首先,让我们了解一些基本的...
Ubuntu 命令行中文乱码问题的解决方法 在 Ubuntu 系统中,命令行中文乱码问题是非常常见的。这个问题的根源在于系统的语言设置,默认情况下,Ubuntu 系统的语言设置为中文,这将导致命令行中无法正确地显示中文字符...
### Ubuntu Linux 命令行简明教程 #### 一、引言 随着开源软件的兴起,越来越多的人开始接触并使用 Linux 操作系统。对于初学者来说,掌握基本的命令行操作是十分必要的。本教程《Ubuntu Linux 命令行简明教程》由...