zoukankan      html  css  js  c++  java
  • 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、

  • 相关阅读:
    Binary Search Tree Iterator 解答
    Invert Binary Tree 解答
    Min Stack 解答
    Trapping Raining Water 解答
    Candy 解答
    Jump Game II 解答
    Implement Hash Map Using Primitive Types
    Gas Station 解答
    Bucket Sort
    HashMap 专题
  • 原文地址:https://www.cnblogs.com/tinywan/p/8679159.html
Copyright © 2011-2022 走看看