前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Linux的mail命令发邮件

使用Linux的mail命令发邮件

作者头像
浩Coding
发布2022-08-30 11:18:33
2.7K0
发布2022-08-30 11:18:33
举报
文章被收录于专栏:浩Coding浩Coding

日常运维经常需要系统告警、平台巡检情况定时发送到邮箱,在Linux中设置好配置文件,一个命令就可以搞定,分三步设置(注意邮件服务的端口是否开放,详见第五步):

1、开启邮箱POP3/SMTP/IMAP服务,设置邮箱授权码

2、修改/etc/mail.rc,在文件末尾增加以下内容,指定外部的smtp服务器地址、帐号密码等:

代码语言:javascript
复制
$ vi /etc/mail.rc  
set from=123456@yeah.net
set smtp=smtp.yeah.net  
set smtp-auth-user=123456
set smtp-auth-password=admin
set smtp-auth=login  
#from是你设置stmp服务的邮箱地址,也就是用来发送邮件的邮箱地址
#smtp是发生的外部smtp服务器的地址,看你用的什么邮箱了,在设置里面可以看到
#smtp-auth-user是外部smtp服务器认证的用户名
#smtp-auth-password是外部smtp服务器认证的用户密码(授权码)
#smtp-auth是邮件认证的方式

3、用mail命令发送邮件

代码语言:javascript
复制
echo 'hello world' | mail -s 'hi' test@yeah.net

4、拓展内容--mail命令详解

代码语言:javascript
复制
#四种常用格式发信:#第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束
mail -s test admin@aispider.com 
#第二种方法,我用的最多,可能是喜欢管道的缘故吧
echo “mail content”|mail -s test admin@aispider.com 
#第三种方法,以file的内容为邮件内.容发信
mail -s test admin@aispider.com< file 
#第四种方法,给多个用户发送邮件
mail -s test -c admin@aispider.com  root@aispider.com< file

5、mail服务需要开的端口

注意:阿里云等云服务商默认是封了的25端口的,(发邮件的SMTP的协议默认是25端口),需要把端口号改成465端口,然后给它一个ssl证书。

--参考文章:阿里云服务器发送邮件 - 野猪乔治 - 博客园 (cnblogs.com)

第一步:安装mailx邮箱服务

代码语言:javascript
复制
yum -y install mailx

第二步:在mailx配置文件里添加用户名,密码。mailx的配置文件是/etc/mail.rc这个文件。

代码语言:javascript
复制
set ssl-verify=ignore              ###   启用证书
set nss-config-dir=/root/.certs    ###   证书存放的位置
set from="123456@yeah.net"    ###   邮箱
set smtp="smtps://smtp.yeah.net:465"      ###   邮箱服务器地址
set smtp-auth-user=123456@yeah.net  ###   邮箱
set smtp-auth-password=admin        ###   邮箱授权码(不是邮箱登录密码,不知道的话自己上去开通)
set smpt-auth=login                 ###   启用自动连接登录,就是发送邮件的时候自动连接到163服务器帮你发送邮件

第三步:既然要用到证书,那我们还得在163的服务器上申请一个证书,证书名字自己定义,我这里命令为yeah.crt。

代码语言:javascript
复制
mkdir -p /root/.certs    ###    证书存放位置
cd  /root/.certs
###下面这几条命令每一条我也不是太明白,我只知道生成了证书和证书文件,和启用的证书!echo -n |openssl s_client -connect smtp.yeah.net:465 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >yeah.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/yeah.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/yeah.crt
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i yeah.crt
certutil -L -d /root/.certs

然后就可以发送邮件了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档