邮件常常是Linux下监控报警手段之一。Linux下的mail命令可以方便,快速的完成发送邮件。

1. Linux发邮件2种常见客户端命令

1.1 mail命令(推荐)

语法:

  • 无邮件正文

    • mail -s "Title" 123456789@qq.com
  • 有邮件正文
    • mial -s "Title" 123456789@qq.com </etc/hosts
    • echo "Contents"| mail -s "Title" 123456789@qq.com
    • cat /etc/hosts |mail -s "Title" 123456789@qq.com
  • 带附件的邮件
    • mail -s "Title" 123456789@qq.com -a /etc/hosts2

参数:

  • -s 主题,邮件标题
  • -a  attach file添加附件
  • -c  给多个用户发送邮件

查看是否安装mail服务:

[root@nfs-31 scripts]# rpm -qa mailx
mailx-12.4-10.el6_10.x86_64

如未安装:

yum install mailx -y

配置文件:/etc/mail.rc

示例:在/etc/mail.rc文件尾加上如下配置

因为163的设置相对简单些,以163邮箱为例,QQ邮箱等,其他邮箱因为安全等因素,需要设置的比较多,具体的可以搞下,本文不作重点。

set from=usr1@163.com
set smtp=smtp.163.com
set smtp-auth-user=usr1
set smtp-auth-password=邮箱密码
set smtp-auth=login

参数说明:

from 是发送的邮件地址

smtp 是发生的外部smtp服务器地址

smtp-auth-user 是外部smtp服务器认证的用户名

smtp-auth-password 密码

smtp-auth 认证方式

发送邮件测试:

echo "Content" | mail -s "Title" dongjunjie@cmcm.com

配置文件/var/spool/mail/[用户名]

查看所有的邮件信息

1.2 mutt命令

语法:

  • 无邮件正文

    • mutt -s "Title" 123456789@qq.com
  • 有邮件正文
    • mutt -s "Title" 123456789@qq.com </etc/hosts
    • echo "Contents"| mutt -s "Title" 123456789@qq.com
    • cat /etc/hosts |mutt -s "Title" 123456789@qq.com
  • 带附件的邮件
    • mutt -s "Title" 123456789@qq.com -a /etc/hosts2

例如:定期删除脚本

#!/bin/sh
# 2019-12-09
# by zoe
# 轮询删除java日志,只保留7天日志
MailContent = /dev/shm/mailContent
LogFile = /dev/shm/cleanJavaLog.log
LogDir = /home/java/java_*/log
MailList = "system@okoo.net" echo "轮询删除java日志,只保留7天日志,详情请查看邮件!删除日志:`date +%Y%m%d`" >$MailContent if [ -n "$LogDir" ];then
  find $LogDir -type f -mtime +7 > $LogFile 2>&1
  find $LogDir -type f -mtime +7 -delete > $LogFile 2>&1
  mutt -s "Clean the java log 7 days ago" $MailList -a $LogFile<$MailContent
else
  echo "删除日志失败,log目录不存在"|mutt -s "Clean the java log Wrong" $MailList
fi

2. 邮件发送原理

Linux本地常见邮件服务有:

CentOS 5 默认使用sendmail邮件服务,开启方式为/etc/init.d/sedmail start

CentOS 6 默认使用postfix邮件服务,开启方式为/etc/init.d/postfix start

2.2 配置mail使用外部SMTP发邮件

通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail/postfix等内部邮件服务而用外部的smtp服务器发送邮件的目的:

  • 修改/etc/mail.rc配置文件,配置信息放在最后

    • set from=usr1@163.com smtp=smtp.163.com smtp-auth-user=usr1 smtp-auth-password=123456 smtp-auth=login

Linux发送邮件命令mail,mutt的更多相关文章

  1. Linux基础命令---mail邮件管理程序

    mail mail是一个邮件的管理程序,可以用来发送或者接收邮件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.   1.语法       mail  [选项] ...

  2. Linux下使用mail命令发送邮件

    因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...

  3. Linux下使用mail发送邮件

    邮件常常是Linux下监控报警手段之一.Linux下的mail命令可以方便,快速的完成发送邮件.下面以CentOS为例 1.安装 [root@vm8028 ~]# mail -bash: mail: ...

  4. 在Linux系统下mail命令的用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  5. linux全部命令

    linux全部命令 一.安装和登陆命令1.进入图形界面startx 2.进入图形界面init 5 3.进入字符界面init 3 4.登陆login 5.关机poweroff-p 关闭机器的时候关闭电源 ...

  6. Linux常用命令速查备忘

    Linux常用命令速查备忘   PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown ...

  7. linux常用命令加实例大全

    目  录引言    1一.安装和登录    2(一)    login    2(二)    shutdown    2(三)    halt    3(四)    reboot    3(五)    ...

  8. 一个linux常见命令的列表

    这是一个linux常见命令的列表. 那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝. 所有的命令已在Fedora和Ubuntu下做了测试 命 ...

  9. Linux系列教程(九)——Linux常用命令之网络和关机重启命令

    前一篇博客我们讲解了Linux压缩和解压缩命令,使用的最多的是tar命令,因为现在很多源码包都是.tar.gz的格式,通过 tar -zcvf 能完成解压.然后对于.zip格式的文件,使用gunzip ...

随机推荐

  1. 吐槽,Java 设计的槽点

    今天不灌水,直接上干货!希望下面的讲解,能与你产生一些共鸣. 1. 求长度各有千秋 你是否曾经在面试的时候,经常被问到:数组有没有 length() 方法?字符串有没有 length() 方法? 集合 ...

  2. 如何优雅的关闭基于Spring Boot 内嵌 Tomcat 的 Web 应用

    背景 最近在搞云化项目的启动脚本,觉得以往kill方式关闭服务项目太粗暴了,这种kill关闭应用的方式会让当前应用将所有处理中的请求丢弃,响应失败.这种形式的响应失败在处理重要业务逻辑中是要极力避免的 ...

  3. udev规则,部署Multipath

    部署Multipath多路径环境 配置iSCSI服务 编写udev规则 配置并访问NFS共享 部署Multipath多路径环境 1 配置iSCSI服务 1.1 问题 本案例要求先搭建好一台iSCSI服 ...

  4. keras与卷积神经网络(CNN)实现识别minist手写数字

    在本篇博文当中,笔者采用了卷积神经网络来对手写数字进行识别,采用的神经网络的结构是:输入图片——卷积层——池化层——卷积层——池化层——卷积层——池化层——Flatten层——全连接层(64个神经元) ...

  5. flask-url参数

    flask-url参数 无约束(string)传参 from flask import Flask app = Flask(__name__) @app.route('/<id>') de ...

  6. docker-compose容器中redis权限问题

    遇到的问题:aof文件不断变大,导致服务器卡崩溃. 1.在服务器上拉取Bitnami/redis的镜像 2.出现aof权限不够问题,所以直接给aof文件加了权限,导致aof不断变大,最终服务器宕机. ...

  7. MySQL入门,第二部分,必备基础知识点

    一.数据类型 日期和时间数据类型 date 字节 日期,格式:2014-09-18 日期和时间数据类型 time 字节 时间,格式:08:42:30 日期和时间数据类型 datetime 字节 日期时 ...

  8. Python常见数据结构-推导式

    推导式是一种重要的Python特性,是一种简单精炼创建Python数据结构的方式. 列表推导式,详细参考https://www.jianshu.com/p/0a269715a742 基本格式为:[表达 ...

  9. 写日志 使用nnlog

    import nnlog log=nnlog.Logger(r"/学习/接口自动化/BestTest/10.26/book_server.log",backCount=5,leve ...

  10. Java并发之显式锁和隐式锁的区别

    Java并发之显式锁和隐式锁的区别 在面试的过程中有可能会问到:在Java并发编程中,锁有两种实现:使用隐式锁和使用显示锁分别是什么?两者的区别是什么?所谓的显式锁和隐式锁的区别也就是说说Synchr ...