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

通过命令行工具高效运用SMTP协议发送电子邮件

在服务器管理和大规模操作中,常需将系统状态或执行结果通过电子邮件通知相关人员。本文详细介绍了如何利用Linux自带的命令行工具高效地通过SMTP协议发送邮件,提供了一种快速便捷的解决方案。

在服务器以及一些大型操作的使用上,经常会有一个需求,就是将运行状态或者运行结果发送邮件给相关人员,利用命令行发邮件是一个非常常用、非常便捷的方式,本文简单介绍下利用Linux自身带的mail程序来进行发送邮件。

默认情况下,mail程序都会被安装,在Ubuntu下,可能会使用esmtp包,RHEL(CentOS, Scientific Linux)则貌似不需要,已经安装好了。

现在主要的操作是建立或者修改用户目录下的.mailrc文件,样例如下:

set from=XXX@XXX.com
set smtp=smtp.XXX.com
set smtp-auth-user=XXX@XXX.com
set smtp-auth-password=*******
set smtp-auth=login

在RHEL环境下,现在就可以使用下面的命令进行发送邮件了:

mail -s "主题" to1@xxx.com -c to2@xxx.com,to3@xxx.com 

这里-s后面是邮件标题,-c后面是抄送,mailbody.txt是事先编写好的邮件体,这在自动化操作下非常方便,可以在脚本里面定制。

如果上面的操作成功了,则说明邮件发送成功,你可以查收下收件箱了。如果不成功,则查看下sendmail服务是否启动,这个很重要。而在Debian或者Ubuntu下,使用的是exim4,因此需要修改一个文件/etc/exim4/update-exim4.conf,修改如下:

dc_eximconfig_cOnfigtype=’local’

修改为

dc_eximconfig_cOnfigtype=’internet’

重启exim4,这就可以使用外部smtp发送邮件了。

如果想使用的是gmail,可以参考这里:

set smtp-use-starttls
set smtp=smtp://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=your-user-name@gmail.com
set smtp-auth-password=your-password
set from="the return address you want"

当然,基于安全考虑,最好将.mailrc权限设置为0600。

现在可以编写脚本来将一些在线的任务状态及时发送给自己或者相关人员。另外如果你拥有的是中国移动的139邮件,你可以将邮件发送到这个邮箱里面,则收到邮件的同时,你的手机也会收到一个短信。大家不妨试试。

 

在服务器以及一些大型操作的使用上,经常会有一个需求,就是将运行状态或者运行结果发送邮件给相关人员,利用命令行发邮件是一个非常常用、非常便捷的方式,本文简单介绍下利用Linux自身带的mail程序来进行发送邮件。

默认情况下,mail程序都会被安装,在Ubuntu下,可能会使用esmtp包,RHEL(CentOS, Scientific Linux)则貌似不需要,已经安装好了。

现在主要的操作是建立或者修改用户目录下的.mailrc文件,样例如下:

set from=XXX@XXX.com
set smtp=smtp.XXX.com
set smtp-auth-user=XXX@XXX.com
set smtp-auth-password=*******
set smtp-auth=login

在RHEL环境下,现在就可以使用下面的命令进行发送邮件了:

mail -s "主题" to1@xxx.com -c to2@xxx.com,to3@xxx.com 

这里-s后面是邮件标题,-c后面是抄送,mailbody.txt是事先编写好的邮件体,这在自动化操作下非常方便,可以在脚本里面定制。

如果上面的操作成功了,则说明邮件发送成功,你可以查收下收件箱了。如果不成功,则查看下sendmail服务是否启动,这个很重要。而在Debian或者Ubuntu下,使用的是exim4,因此需要修改一个文件/etc/exim4/update-exim4.conf,修改如下:

dc_eximconfig_cOnfigtype=’local’

修改为

dc_eximconfig_cOnfigtype=’internet’

重启exim4,这就可以使用外部smtp发送邮件了。

如果想使用的是gmail,可以参考这里:

set smtp-use-starttls
set smtp=smtp://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=your-user-name@gmail.com
set smtp-auth-password=your-password
set from="the return address you want"

当然,基于安全考虑,最好将.mailrc权限设置为0600。

现在可以编写脚本来将一些在线的任务状态及时发送给自己或者相关人员。另外如果你拥有的是中国移动的139邮件,你可以将邮件发送到这个邮箱里面,则收到邮件的同时,你的手机也会收到一个短信。大家不妨试试。


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