在Linux下利用Google的SMTP来发邮件

在维护服务器的时候,经常需要建立一个服务器错误预警系统,而邮件是一个很好的途径。

在Linux下,一般是通过mail来写邮件,而传递默认使用sendmail服务。这样虽然能向外界发送邮件,但邮件不能回复,并且sendmail服务要求发送方是系统可识别用户,配置比较麻烦。下面通过使用Google的SMTP服务器来发送邮件,不但减轻服务器负担,而且可以使用类似的公共邮件地址来作为发送方。

下面所有步骤,全部基于CentOS 6.3,其他发行版本类似。

1.安装mail

yum install mailx -y

2.如果想直接使用sendmail来发送邮件,需要启动sendmail服务,或者saslauthd服务

3.如果想利用外部SMTP发送邮件,需编辑/etc/mail.rc,加入以下内容

set from=demo@qq.com
 set smtp=smtp.qq.com 
 set smtp-auth-user=demo
 set smtp-auth-password=demopass
 set smtp-auth=login
 但是这个设置只适合那些支持非ssl链接的SMTP服务器,但对于想Google这样,强制使用SSL加密连接的,需根据第4步配置mail
 

4.利用Google的SMTP发送邮件
 在裝有 Firefox 的 Linux 电脑, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 与 key*.db 复制到 ~/.mozilla_nss_shared_db
 编辑/etc/mail.rc,加入以下内容
 set ssl-verify=ignore
 set nss-config-dir=~/.mozilla_nss_shared_db
 set from="myaccount@gmail.com(myname)"
 set smtp=smtps://smtp.gmail.com:465
 set smtp-auth=login
 set smtp-auth-user=myaccount
 set smtp-auth-password=mysecret

如果想添加多个帐号,那就这样写配置文件

account starttls {
 set smtp-use-starttls
 set ssl-verify=ignore
 set nss-config-dir=~/.mozilla_nss_shared_db
 set from="myaccount@my.smtp.host(myname)"
 set smtp=smtp://my.smtp.host:25
 set smtp-auth=login
 set smtp-auth-user=myaccount
 set smtp-auth-password=mysecret
 }
 account gmail {
 set ssl-verify=ignore
 set nss-config-dir=~/.mozilla_nss_shared_db
 set from="myaccount@gmail.com(myname)"
 set smtp=smtps://smtp.gmail.com:465
 set smtp-auth=login
 set smtp-auth-user=myaccount
 set smtp-auth-password=mysecret
 }

不过在发送邮件的时候,需要用-A参数指定发送帐号,比如-A gmail

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b115be3786248200456c00e43eed32c5.html