前言
Linux操作系统支持发送邮件,一般用于某程序执行完某任务时发送邮件提示该任务已完成或者出错,用于定时任务很友好。
环境
操作系统:Ubuntu
邮件服务器:163邮箱
安装软件
Ubuntu使用邮件功能需要安装两个软件
在安装mailutils时,过程中弹出的界面选择no configuration即可。
bash
apt-get install -y mailutils ssmtp
查看配置文件
安装完程序后,在/etc/ssmtp/下,有两个配置文件,如下:

配置发送邮箱地址
bash
vim /etc/ssmtp/ssmtp.conf
ssmtp.conf配置文件内容可以参照我的
案例:
yaml
# ssmtp 发送邮件配置文件
# 发件人邮箱
root=aa134xxx056@163.com
# 邮件接收地址,
mailhub=smtp.163.com:465
# 发件人邮箱(用于验证该邮箱的所有权)
AuthUser=aa134xxx056@163.com
# 发件人邮箱授权码
AuthPass=UKZxxxxxxLGK
#配置使用证书
UseTLS=Yes
不知道邮件地址?
查看常见的邮件服务器地址:https://blog.hikki.site/dd7ff60b.html
如何获取授权码?
配置revaliases
yaml
#格式:
# root:发件人邮箱:邮件服务器地址:端口号(端口若不写则默认端口为25)
root:aa134xxx056@163.com:smtp.163.com:465
#表示主机用户root让smtp.163.com:465这个邮件服务器以aa134xxx056@163.com为发件人给其他用户发邮件
测试发送邮件
不含附件的邮件
yaml
#测试一
echo "邮件正文" | mail -s "邮件主题" 4616745454@qq.com
#-s参数表示后面指定一个邮件主题
# 4616745454@qq.com是收件人的邮箱,可替换为指定的收件人邮箱
#测试二
mail -s "邮件主题" 4616745454@qq.com < test.txt
#text.txt中的内容将作为邮件正文的内容发送
#测试一和测试二做的事情是一样的,都只是发送主题和正文
含附件的邮件
yaml
echo "邮件正文" | mail -s "邮件主题" -A test.txt 4616745454@qq.com
#-A指定要发送的一个附件,将这个文件发送给收件人
邮件日志
在/var/log下有2个mail的日志,一个是mail.log,一个是mail.err。
mail.log记录了mail命令的运行日志。mail.err记录了mail命令的报错日志。
FAQ
Q:/var/log/mail.err中的错误日志:Cannot open smtp.qq.com:25?
A:这个错误是无法访问smtp.qq.com:25,因为smtp.qq.com的邮件服务器端口是465,所以在 /etc/ssmtp/ssmtp.conf 、/etc/ssmtp/revaliases 中都需要把邮件服务器的端口改成465。(Tip:在这两个配置文件中配置邮件服务器的域名的时候,端口是必须指定的,如果不指定则默认为25)
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 小码同学
评论
隐私政策
0/500
滚动到此处加载评论...


