Linux 命令详解(十二)Systemd 入门教程:使用定时器发送邮件(mail)
Systemd 定时器教程:http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html
一、定时任务
Systemd 定时任务:每小时发送一封电子邮件
二、邮件脚本
mail.sh 内容
#!/usr/bin/env bash echo "This is the mail test" | /usr/bin/mail -s "Hi Tinywan" 756684177@qq.com
执行脚本
1、提示
Please install an MTA on this system if you want to use sendmail!
2、安装SSMTP服务
sudo apt-get install ssmtp
3、使用SSMTP替代sendmail/postfix
一般情况下,很多 Linux 发行版都使用 Sendmail 或 Postfix 作为默认了电子邮件系统,我们之所以使用 SSMTP 就是为了使用外部 SMTP 中继,因此要将 SSMTP 配置为系统默认,首先就得停用 sendmail 或 postfix 服务。
systemctl stop sendmail
systemctl stop postfix
如果你使用较早版本 Linux,可以使用如下命令停用服务:
service sendmail stop
service postfix stop
注意:还需停止 sendmail 或 postfix 服务随系统启动哦,最好还是直接卸载掉吧。
4、配置SSMTP使用 QQ 邮件地址
使用 vim 或你喜欢的任意编辑器对 /etc/ssmtp/ssmtp.conf 文件进行编辑,我们以 QQ 的 SMTP 服务器为例,如果你使用其它 SMTP 请自行按服务商的官方文档进行修改:
www=1722318623@qq.com
mailhub=smtp.qq.com:587
AuthUser=1722318623@qq.com
AuthPass=xxxxxxxxxxxxxxxxx
UseTLS=YES
UseSTARTTLS=YES
FromLineOverride=YES
RewriteDomain:qq.com
注意:以上红色为你使用QQ邮件服务器申请的邮件信息,请配置为你的邮件信息
配置文件修改并保存好之后我们就可以用上 QQ 提供的可靠邮件服务了,现在先用如下命令先发个测试邮件来看看:
echo "This is a test e-mail" | mail -s "Test Email" overcome.wan@gmail.com
发送测试邮件时遇到类似如下提示:
sendmail: Cannot open mail:25
那是因为 ssmtp 默认会尝试使用标准的 SMTP 25 端口去连接邮件服务器,如果你所使用的 SMTP 中继像 Gmail 或 QQ 这样采用了 TLS 加密的非标准端口,还需要到 /etc/ssmtp/revaliases 配置文件中对发件人、服务器地址和端口进行指明:
www:1722318623@qq.com:smtp.qq.com:587
mainuser:1722318623@qq.com:smtp.qq.com:587
配置好后继续测试
echo "This is a test e-mail" | mail -s "Test Email" 756684177@qq.com
邮件提示信息
至此,邮件发送配置完成
三、Service 单元
新建 Service 非常简单,就是在/usr/lib/systemd/system
目录里面新建一个文件,比如:tinywan-timer.service
文件,你可以写入下面的内容。
小知识:
Linux下使用vi新建文件保存文件时遇到错误:E212: Can't open file for writing
以上问题是由于权限问题导致的,解决方法有以下思路:
- 1、使用root进行登录,然后再操作。
- 2、在使用命令时,前面加sudo。
- 3、如果是多级文件夹的文件时,由于这个文件夹没有创建,所以要先创建这个文件夹,再来操作这个文件。
参考
1、SSMTP—让Linux系统从Office 365发送邮件
2、
Linux 命令详解(十二)Systemd 入门教程:使用定时器发送邮件(mail)的更多相关文章
- Linux 命令详解(二)awk 命令
AWK是一种处理文本文件的语言,是一个强大的文本分析工具.之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Fami ...
- Linux命令详解之—tail命令
tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...
- Linux命令详解之—less命令
Linux下还有一个与more命令非常类似的命令--less命令,相比于more命令,less命令更加灵活强大一些,今天就给大家介绍下Linux下的less命令. 更多Linux命令详情请看:Linu ...
- Linux命令详解之—more命令
Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...
- Linux命令详解之—cat命令
cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...
- Linux命令详解之—pwd命令
Linux的pwd命令也是一个非常常用的命令,本文为大家介绍下Linux中pwd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux pwd命令用于显示工作目录. 执行pwd指 ...
- Linux命令详解之–cd命令
cd命令是linux实际使用当中另一个非常重要的命令,本文就为大家介绍下Linux中cd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux cd命令用于切换当前工作目录至 d ...
- Linux命令详解之–ls命令
今天开始为大家介绍下Linux中常用的命令,首先给大家介绍下Linux中使用频率最高的命令--ls命令. 更多Linux命令详情请看:Linux命令速查手册 linux ls命令用于显示指定工作目录下 ...
- (转)linux命令详解之useradd命令使用方法
linux命令详解之useradd命令使用方法 原文:http://blog.csdn.net/u011537073/article/details/51987121 Linux 系统是一个多用户多任 ...
- [转载]Linux 命令详解:./configure、make、make install 命令
[转载]Linux 命令详解:./configure.make.make install 命令 来源:https://www.cnblogs.com/tinywan/p/7230039.html 这些 ...
随机推荐
- js-元素相关
获取元素方法一 可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量,比如: <script ...
- VSIX 插件右键菜单
vs2017 插件开发 环境 WIN10 VS2017 CMMT VSIX 参考资源: vs菜单命令ID速查 https://docs.microsoft.com/zh-cn/visualstudio ...
- 【bfs】拯救少林神棍(poj1011)
Description 乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位.然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度.请你 ...
- luogu2467/bzoj1925 地精部落 (dp)
求1~n组成一个抖动序列的方案数 首先这种序列有一些非常妙妙但我发现不了的性质 1.对于一个抖动序列,如果i和i+1不相邻,则交换i和i+1,他还是个抖动序列 2.对于一个抖动序列,我把每个数拿n+1 ...
- hdu 1238 Substrings(kmp+暴力枚举)
Problem Description You are given a number of case-sensitive strings of alphabetic characters, find ...
- Ubuntu下搜狗输入法无法输入中文
现象:无法打出中文,但是有输入框.如下图所示情形: 解决方法 删除配置文件,重启fcitx 配置文件在~/.config下的3个文件夹里SogouPY.SogouPY.users.sogou-qimp ...
- IDEA2017.3.5破解
首先下载好idea, https://www.jetbrains.com/idea/download/previous.html 下载破解文件: https://pan.baidu.com/s/1tB ...
- tuple数组、文件操作
halcon自带案例的学习. Tuple1 := [,,,,] //数组 Number := |Tuple1| //元素个数 SingleElement := Tuple1[] Part := Tup ...
- 关于shared_ptr与weak_ptr的使用(good)
shared_ptr是带引用计数的智能指针,可以说大部分的情形选择用shared_ptr不会出问题.那么weak_ptr是什么,应该怎么用呢? weak_ptr也是智能指针,但是比较弱,感觉没什么用. ...
- HTTP协议相关原理
HTTP 的全称是 Hyper Text Transfer Protocol,中文名叫做超文本传输协议 HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证传送高效而准确地传送超文本 ...