在生活工作中,我们会经常写一些任务计划,比如定期检查一下磁盘的使用情况,定期执行一些脚本、指等等,但是Linux系统中的机制是把结果以邮件的形式发送到用户的邮箱里,假如现在你出差了,但是你的计划任务还在公司的电脑上进行着,这个时候你该怎么办呢?接下来我介绍一下怎么用Linux系统给QQ邮箱、163邮箱等等发送邮件,这样的话你的计划任务就会把执行结果发送到你的邮箱里,让你随时随刻对你的主机了如指掌。


本文演示:

  • centos 7
  • qq邮箱

计划任务的书写看我前面的博客,超级详细


利用系统的mail(25号端口)服务发送

  1. 编辑/etc/mail.rc,输入下面的配置文件

    set from=设置用哪个邮箱发送邮件#收到邮件时显示的发件人
    set smtp=smtp.qq.com#邮箱的域名
    set smtp-auth-user=你的QQ邮箱账号#发邮件的用户名
    set smtp-auth-password=邮箱的POP3/SMTP服务的授权码
    set smtp-auth=login #SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式

    获取邮箱授权码的方式:登陆你的邮箱

    然后点击账户

    选择开启POP3/SMTP服务

    然后获取授权码

  2. 发送无正文邮件
    mail -vvv -s ”主题" 邮箱地址
  3. 发送有正文邮件
    mail -s "主题"  xxx@qq.com < 文件(邮件正文.txt)
    cat 邮件正文.txt | mail -s 邮件主题  收件地址
    echo "邮件正文" | mail -s 邮件主题  收件地址
  4. 发送带附件邮件
    mail -s "主题"  收件地址  -a 附件 < 文件(邮件正文.txt) 

到这里一般的虚拟机和主机应该都没问题了,但是当我使用阿里云、腾讯云的主机的时候会报错连接超时,经过一番查证和实验发现阿里云和腾讯云的主机把25号端口给封锁,导致连接超时,要想解决这个问题,可以去阿里云和腾讯云的控制台上申请开启25号端口,这样这个问题也就迎刃而解了。但是还有一种安全而且加密的协议在不申请25号端口的情况下完美的解决这个问题,那就是 ssl协议。

利用ssl协议发送

  1. 编辑/etc/mail.rc,输入下面的配置文件

    set from=设置用哪个邮箱发送邮件#收到邮件时显示的发件人
    set smtp="smtps://smtp.qq.com:465"#邮箱的域名及端口号
    set smtp-auth-user=你的QQ邮箱账号#发邮件的用户名
    set smtp-auth-password=邮箱的POP3/SMTP服务的授权码
    set smtp-auth=login #SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
    set nss-config-dir=/etc/pki/nssdb   #存放认证证书的地址
    set ssl-verify=ignore
  2. 邮箱发送格式同上

可能遇到问题

  1. mailx的版本太低

    [root@localhost ~]# rpm -qa mailx #查看自己的mailx版本
    mailx-12.5-19.el7.x86_64
    [root@localhost ~]# yum -y install mailx #安装最新版的mailx
  2. 域名解析不成功
    [root@cyn(cyn) ~ ]# echo "今晚约吗?"|mail -vvv -s "真帅" 0011000100@qq.com
    Resolving host /smtp.qq.com . . .Could not resolve host: /smtp.qq.com
    "/root/dead.letter" 11/330
    . . . message not sent.

    解决方法:
    a. 增加dns解析

    [root@cyn(cyn) ~ ]# vim /etc/resolv.conf
    #在本文件中增加一条记录,必须写在第一个,因为这个文件时顺序执行,会解析第一个nameserver,第一个解析不了再去解析下一个
    nameserver 114.114.114.114
    nameserver 100.100.2.136
    nameserver 100.100.2.138
  3. 连接超时
    [root@cyn(cyn) ~ ]# echo "今晚约吗?"|mail -vvv -s "真帅" 0011000100@qq.com
    Resolving host smtp.qq.com . . . done.
    Connecting to 14.17.57.241:465 . . . connected Refused.
    . . . message not sent.

    解决方法:基本上都是网络问题了还有本身防火墙

    [root@localhost ~]# iptables -F
    [root@localhost ~]# setenforce 0

网易邮箱也可以,设置方法同QQ邮箱,下面介绍一下获取授权码
登陆网易邮箱,点击设置,开启POP3/SMPT服务,点击保存

点击客户端授权密码,再点击重置密码

获取授权码

但是网易邮箱会把发过去的邮件当成垃圾邮件处理,使用的时候需要注意。

转载于:https://blog.51cto.com/13805636/2296425

Linux 中计划任务把结果发送到你的邮箱相关推荐

  1. linux设置周期性计划任务,Linux中计划任务、周期性任务设置

    Linux中计划任务.周期性任务设置 计划任务:指在未来的特定时间里,执行一次某一特定任务.当然,如果同一任务需要在不同时间点执行执行两次.三次或多次,可以视为多个一次看待. 周期性任务:指某一任务需 ...

  2. python图片直接保存到远端_Python在远程服务器中的实现挂代码-发送定期天气预报到邮箱+每天一句话(小白教程),远端,定时,至,每日...

    Python实现在远端服务器挂代码-发送定时天气预报至邮箱+每日一句(小白教程) 人生苦短,我用python.下面来讲解一个python每天定时发送天气预报和每日一句至指定邮箱的脚本挂在服务器运行的程 ...

  3. linux任务计划单独脚本能执行,linux中计划任务执行脚本

    我使用的是ubuntu14.4,所以在ubuntu中一切正常,在其他linux系统中应该都差不多. 1 计划任务,crontab命令选项: -u指定一个用户, -l列出某个用户的任务计划, -r删除某 ...

  4. Linux中的计划任务—Crontab调度一次性执行的任务at/batch

    概述 前不久我们梳理了Linux中的计划任务-Crontab调度重复执行的任务,但是有些场景我们只是需要执行一次,执行完就结束任务该怎么办呢? 这里我们要用到linux提供的at/batch命令. 本 ...

  5. linux命令 socket,如何从linux中的命令行向socket.io websocket发送消息?

    是否可以使用linux中的命令行向我的localhost服务器(节点)发送socket.io消息?我不确定这是否可行--从稀缺的谷歌搜索结果来看,我猜这不可能或不复杂-- 我的socket.io代码如 ...

  6. linux命令行发送串口_从命令行在Linux中发送电子邮件

    linux命令行发送串口 In this article, you will learn how to send emails using the popular mail commands. It' ...

  7. linux上无法发送163邮件,如何在linux中发送邮件,使用163邮箱发信。

    linux中,可以使用mail命令往外发送邮件,在使用前,只需要指定如下简单配置即可,这里演示用  163.com    邮箱发送至 qq.com 编辑 /etc/mail.rc,写入下方的参数 se ...

  8. 大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 、 Yum软件包仓库操作(概念与实操)

    大数据与云计算学习计划 (一) 云计算系统管理 6 Linux中RPM软件包管理操作 . Yum软件包仓库操作(概念与实操) 一.RPM软件包管理 1.常见软件包类型 2.RPM包文件名特征 3.RP ...

  9. linux esc 命令,如何将ESC/POS命令发送到Linux中的热敏打印机

    我正尝试在热敏打印机上发送ESC/POS命令.但是,每当我发送热敏打印机打印它们作为文本,而不是执行它们作为命令.我正在将这些命令写入.prn文件,并且每当我执行lp命令来打印文件时,这些.prn文件 ...

最新文章

  1. MMDetection3D:新一代通用3D目标检测平台
  2. elasticsearch 后置过滤器(Post Filter)
  3. sqlite数据库实现字符串查找的方法(instr,substring,charindex替代方案)
  4. Network of Schools POJ - 1236 tarjan强连通分量缩点
  5. svm多分类代码_监督学习——分类算法I
  6. pytorch中的expand()和expand_as()函数--扩展张量中某维数据的尺寸
  7. Android 应用开发---ViewPager---4自主实现滑动指示条
  8. Spark Runtime概述
  9. asp.net mvc 发布问题
  10. 分布式锁没那么难,手把手教你实现 Redis 分布锁!|保姆级教程
  11. Python多环境扩展管理-Virtualenv
  12. MapGIS Mobile开发
  13. 【python】google的经纬度定位查询API
  14. 【文化课每周学习记录】2019.4.14——2019.4.20
  15. 深度学习损失函数 分类损失回归损失
  16. java格式化xml字符串_XML串的格式化输出
  17. 【考研英语】阅读理解词汇注释
  18. bam文件读取_SAM/BAM 格式文件内容解析
  19. 如何解决“自动装包”过程中oppo、vivo等手机需要输入密码的问题
  20. tink.js # pixi辅助插件 — 中文翻译教程

热门文章

  1. 软件测评师--第19小时 数据测试
  2. javascript鼠标拖尾特效
  3. crash(crashed)
  4. 【课程汇总】Hello HarmonyOS系列课程,手把手带你零基础入门
  5. python udp 大文件_Python UDP服务器发送文本文件的行(Python UDP Server send lines of a text file)...
  6. 如何在Apple CarPlay中使用Google Maps进行导航
  7. sqlserver数据库同步更新数据到mysql数据库,利用ODBC
  8. jep122_JEP 368:文本块(第二预览)
  9. 计算机辅助翻译产生的目的,目的论指导下的科技文本汉英翻译实践报告--以《计算机辅助翻译》为例...
  10. zheng 项目(一)之从 zheng-common 开始