Linux配置mail发送登录通知邮件功能

安装mailx

yum install mailx -y (centos环境)
apt-get install mailutils -y (debian环境正在测试)

配置mail

vi /etc/mail.rc

直接在后面追加下面内容,这里用的腾讯企业邮箱

set smtp=smtps://smtp.exmail.qq.com:465
set smtp-auth=login
set smtp-auth-user=xxx@xxx.org
set smtp-auth-password=oProxS3cVbJxxxx
set from=xxx@xxx.org

set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

smtp是邮箱的smtp地址,现在基本都是用ssl,可以在邮箱设置里看到

smtp-auth是认证方式

smtp-auth-user是用户名,也就是你的发信人邮箱号

smtp-auth-password是口令,用邮箱里生成的授权码

from是发件人地址,也是你的邮箱号

下面的两项是配置ssl用的,最后一项的证书目录路径需要用下面搜索,默认一般都是这个地址

find / -name "cert*.db"

测试发邮件

用下面的命令测试发邮件功能,这里是自己发给自己

echo "this is my test mail" | mail -s 'mail test' xxx@xxx.org

发出后会有个提示,大概意思是  “证书错误:无法识别对等方的证书颁发者。”

 

关于邮箱授权码

腾讯企业邮箱在设置-邮箱绑定里

  

说下踩的坑

之前一直用网上搜到的教程做,都不成功,邮件无法发出,也无回显

 之前的/etc/mail.rc的配置文件是这样的

set smtp=smtp.exmail.qq.com
set smtp-auth=login
set smtp-auth-user=xxx@xxx.org
set smtp-auth-password=oProxS3cVbJxxxx
set from=xxx@xxx.org

后来在这篇文章里看到后想到可能是ssl的问题,才有了前面的新配置

配置SSH登陆邮件提醒功能 

编辑/etc/bashrc

vi /etc/bashrc

在末尾添加下面

echo -e "用户: `who | cut -d' ' -f1 | head -1` 
日期: `date` 
地址: `who | cut -d'(' -f2 | cut -d')' -f1 | tail -1`" | mail -s "服务器`hostname`登录提醒" xxx@xxx.com

 保存退出

用source生效

source /etc/bashrc

source后当时就会发送一份

  

 PS:经过测试,bashrc后面添加的代码的用户部分换成了whoami比较好,who命令显示不了跳转后的当前用户

参考:

Linux安装mailx配置SMTP发送邮件 - 小z博客 

LINUX服务器配置登录邮件提醒_yauiel888的博客-CSDN博客 

在 Linux 命令行发送邮件的 5 种方法(推荐) - 云+社区 - 腾讯云 

奶奶问孙子:4+1等于几 孙子说:等于6-1。 奶奶说:你明明知道答案,为什么不说? 孙子说:年轻人不讲5的……..
原文地址:https://www.cnblogs.com/jasy/p/15007052.html