Linux邮件服务入门

前言

想定期查询天气并提示我,很容易想到了创建定时任务然后给我自己发邮件,进而学习了linux如何发邮件,下面就开始吧。

开启邮件服务(Ubuntu)

  1. 首先执行mail命令看有没有安装,没有的话会提示安装mailutils,执行sudo apt install mailutils安装,默认安装所有就好。
  2. 此时已经安装好了mail,mailx服务程序,还有postfix邮件服务器,而sendmail邮件服务器已经过时,默认没有安装,如果安装了请卸载sendmail服务器。
  3. 配置mail,使用smtp功能。vim /etc/mail.rc打开或者创建文件并填写以下内容:
        set from=crab@163.com
        set smtp=smtp.163.com
        set smtp-auth-user=crab@163.com
        set smtp-auth-password=******
        set smtp-auth=login
    
    其中,password是使用163邮箱生成的授权码,不是邮箱密码(163邮箱要开启smtp服务哦).
  4. 查看postfix状态,需要开启此服务
    sudo service postfix status
    sudo service postfix start
    ok,到这里已经可以发送邮件啦!
  5. 发送邮件测试一下
    echo today is a nice day! | mail -s today crab@163.com
    等一会就收到邮件了,我试了qq邮箱也是可以的,而outlook邮箱把邮件拉进了反垃圾黑名单,被退回来了:😢:,暂时没找到解决办法。

实现定时任务

  1. 编写脚本
    vim /home/popo/getweather.sh
    curl -H "Accept-Language:zh" wttr.in/paris > /home/popo/today.weather,查询天气信息并写入文件
    chmod a+x /home/popo/getweather.sh,修改可执行权限
    cd /home/popo,尝试执行./getweather.sh,查看天气cat today.weather
    vim /home/popo/send.sh
    echo Weather information has arrived.|mail -s "weather" crab@163.com < today.weather发送天气邮件
    chmod a+x send.sh,修改可执行权限
    尝试执行./send.sh,查看邮件是否收到
  2. 创建任务
    crontab -l,查看当前任务列表
    crontab -e,编写任务
    在末尾添加0 12 * * * /bin/bash /home/popo/getweather.sh0 13 * * * /bin/bash /home/popo/send.sh
    表示在每天中午十二点查询天气,十三点发送邮件。ok,大功告成!
posted @ 2018-12-30 13:52  bkycrab  阅读(967)  评论(0编辑  收藏  举报