热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Linux系统使用Google的SMTP来发邮件

在维护服务器的时候,经常需要建立一个服务器错误预警系统,而邮件是一个很好的途径。在linux下,一般是通过mail来写邮件,而传递默认使用sendmail服务。这样虽然能向外界发送邮件,但邮件不能回复,并且sendmail服务要求发送方是系统可识别用户,配置比较麻
在维护服务器的时候,经常需要建立一个服务器错误预警系统,而邮件是一个很好的途径。
在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


推荐阅读
author-avatar
kanliyan_857
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有