Linux邮件服务入门
前言
想定期查询天气并提示我,很容易想到了创建定时任务然后给我自己发邮件,进而学习了linux如何发邮件,下面就开始吧。
开启邮件服务(Ubuntu)
- 首先执行
mail
命令看有没有安装,没有的话会提示安装mailutils,执行sudo apt install mailutils
安装,默认安装所有就好。 - 此时已经安装好了mail,mailx服务程序,还有postfix邮件服务器,而sendmail邮件服务器已经过时,默认没有安装,如果安装了请卸载sendmail服务器。
- 配置mail,使用smtp功能。
vim /etc/mail.rc
打开或者创建文件并填写以下内容:
其中,password是使用163邮箱生成的授权码,不是邮箱密码(163邮箱要开启smtp服务哦).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
- 查看postfix状态,需要开启此服务
sudo service postfix status
sudo service postfix start
ok,到这里已经可以发送邮件啦! - 发送邮件测试一下
echo today is a nice day! | mail -s today crab@163.com
等一会就收到邮件了,我试了qq邮箱也是可以的,而outlook邮箱把邮件拉进了反垃圾黑名单,被退回来了:😢:,暂时没找到解决办法。
实现定时任务
- 编写脚本
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
,查看邮件是否收到 - 创建任务
crontab -l
,查看当前任务列表
crontab -e
,编写任务
在末尾添加0 12 * * * /bin/bash /home/popo/getweather.sh
和0 13 * * * /bin/bash /home/popo/send.sh
表示在每天中午十二点查询天气,十三点发送邮件。ok,大功告成!
不为当下而战,何以颠覆未来