定时任务发送邮件

定时任务发送邮件(其他)

centos

在最初着手做的时候确实让自己摸不着头脑,最终发现也就是那么几步而已,一直是自己在走坑,就把该做的流程写下来。

涉及知识:crontab,sh,vim操作

方式:使用163邮箱作为外部邮箱服务器,而并非自身搭建服务器,省去配置上的麻烦和进存的消耗。

SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。

1. 因为我是用的是centos7虚拟机,并且是新的设备。我们一切需要安装依赖包,需要安装sendmail安装包。

注意我们的所有命令是在用户下进行的,操作之前需要使用的命令。

cd

yum -y install sendmail

2. 安装后启动sendmail

service sendmail start

3. 安装mail

yum install -y mailx

4. 设置发件人的信息,这样子也就是利用了smtp协议。

vi /etc/mail.rc

5. 编辑其中的内容,在末尾加上邮箱的信息。(在这之前一定要打开smtp,获得授权码,这一个设置可以在邮箱网站的设置里面找到。)

set from=username@136.com # username是邮箱的名字
set smtp=smtp.136.com # 这个是不变的
set smtp-auth-user=username  # 这一个自己设置
set smtp-auth-password=password # 密码,但在这里是邮箱开启的授权码
set smtp-auth=login  # 这一个地方不需要更改


示例我自己的信息:

set from=honey_morning_boy@163.com              #发送邮件后显示的邮件发送方

set smtp=smtp.163.com                      #网易邮箱smtp邮件服务器地址

set smtp-auth-user=honey_morning_boy@163.com       
#发件人邮箱

set smtp-auth-password=xxxxxxxx
#发件人邮箱密码

set smtp-auth=login 
#动作为登录

6. 基本到这里已经实现了自己的信息发送,因为我想要实现的功能是发送一个文件。所以需要再建立一个文件。

建立文件过程省略,按照格式可以发送邮件给对方邮箱。

mail -s "网络与信息安全三班晨午检提醒" xxxxxxx@qq.com,xxxxxxx@qq.com  < /home/buran/Documents/txt/chenwujian.txt

格式中需要解释的内容:

-s参数

后跟的是邮件主题

后跟的发送的邮箱

后跟文件的绝对地址(注意一定要是绝对地址)

7. 理论上是可以发布成功了,但我做的不仅是如此,我想要定时运行一个指令。先要把这个指令放在一个shell里面,编写一个shell。

查阅鸟哥的Linux书籍,为了便于运行,目录切换到最初的目录

命令  cd

后进入用户目录 

mkdir bin

cd bin

写一个shell

vim chenwujian.sh

进入后按照规则写shell(注意要写绝对地址)

保存完毕后退出

将文件权限设置成root和用户组可以运行的状态

命令 chmod 774 chenwujian.sh

8. 尝试运行脚本

sh chenwujian.sh

成功!

9. 现在开始设置定时任务。使用crontab

centos7自带crontab,不用再重新下载,我们进入其中观察。

cat /etc/crontab

进入编辑并且保存定时任务,其中比较重要的是各个符号的解释。

* 表示任何时刻

, 表示分割

- 表示时间段

/n 表示每隔你单位执行一次

并且有五个时间单位,从前到后分别是

分钟、小时、日期、月份、星期

后面依次跟的是命令的执行者和命令所在的位置

编辑成功后使用命令

crontab /etc/crontab

crontab -l

如果想要删除任务使用命令

crontab -r

如上已经完成配置定时任务,但我们想要启动要怎么做

systemctl start crond

关闭服务

systemctl stop crond

重启服务

systemctl restart crond

设置开机启动

systemctl enable crond.service

比如看我的一个文件

* * * * * root /home/buran/bin/chenwujian.sh

ubantu

参考其他博客

[https://blog.csdn.net/mdx20072419/article/details/103901254]

1. 配置软件源

ubuntu18.04上无法直接安装heirloom-mailx,需要添加软件源

命令 sudo vim  /etc/apt/sources.list

在内部写入

deb http://cz.archive.ubuntu.com/ubuntu xenial main universe

保存关闭

2. 安装heirloom-mailx

sudo apt-get update
sudo apt install heirloom-mailx

3. 配置外部smtp

这个和centos类似,但要注意地址不同

打开编辑文件 vim /etc/s-nail.rc

set from=username@136.com # username是邮箱的名字
set smtp=smtp.136.com # 这个是不变的
set smtp-auth-user=username  # 这一个自己设置
set smtp-auth-password=password # 密码,但在这里是邮箱开启的授权码
set smtp-auth=login  # 这一个地方不需要更改

4. 测试

s-nail  -s "邮件主题" 123xxx@126.com  < result.txt

一切和centos类似,只是有一点小小的区别,属于文件系统的区别。


多多勉励自己

加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值