Linux配置使用命令行(mailx)收发Gmail邮件

27 February 2012

项目使用Amazon EC2作为服务器,在测试的时候发现邮件不能被正常发出去,网上查了下貌似Amazon的服务器为了防止被当作发垃圾邮件的工具,对邮件发送有限制。Amazon提供了一个Simple Mail Service可以与EC2集成在一起使用,不过对于Gmail的用户,经过简单的设置可以直接让mailx命令通过Gmail收发邮件。

以下的教程基于http://klenwell.com/is/UbuntuCommandLineGmail.经过测试对邮件服务器托管在Google Apps的自有域名也同样适用。教程是基于Ubuntu写的,但经过简单修改应该同样适用于其他UNIX/Linux系统。

1. 安装程序包:

$ sudo apt-get install msmtp
$ sudo apt-get install mailx

并查看/usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt证书文件是否已经存在,如果没有可以从以下地址下载:http://packages.ubuntu.com/en/source/lucid/ca-certificates

2. 修改msmtp配置文件:

$ gedit ~/.msmtprc

拷贝以下内容,并替换你自己的用户名密码:

# config options: http://msmtp.sourceforge.net/doc/msmtp.html#A-user-configuration-file
defaults
logfile /tmp/msmtp.log

# gmail account
account gmail
auth on
host smtp.gmail.com
port 587
user YOURNAME@gmail.com
password YOURPASSWORD
from YOURNAME@gmail.com
tls on
tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt

# set default account to use (not necessary with single account)
account default : gmail

修改文件访问权限:

$ chmod 600 ~/.msmtprc

3. 修改mailx配置文件:

$ gedit ~/.mailrc

拷贝以下内容,并替换你自己的用户名:

# set smtp for mailx

# gmail account (default)
# $ mailx -s "subject line" -a /path/attachment recipient@email.com < /path/body.txt set from="YOURNAME@gmail.com (YOURNAME)" set sendmail="/usr/bin/msmtp" set message-sendmail-extra-arguments="-a gmail"

4. 用以下命令可以测试:

$ echo -e "testing email from the command line" > /tmp/test_email
$ mailx -s "mailx gmail test" YOURNAME@gmail.com < /tmp/test_email

检查目标邮箱或者log文件:

$ tail /tmp/msmtp.log

下一篇: Nutch开发简介 →

blog comments powered by Disqus