- A+
所属分类:linux技术
最近需要在服务器上运行一些时间很长的命令,想让服务器自动通知我什么时候命令完成,通过命令结束后发送邮件给我来提醒。
安装 msmtp 和 mail
# RedHat 系 sudo dnf install msmtp mailx # Debian 系 sudo apt install msmtp mailutils
配置 msmtp
创建或编辑.msmtprc
,内容示例如:
# Set default values for all following accounts. defaults auth on tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt logfile ~/.msmtp.log # Gmail example account gmail host smtp.gmail.com port 587 from your_email@gmail.com user your_email@gmail.com password your_password # Set a default account account default : gmail
其中host
和port
根据不同的邮箱而异,from
和user
为发送邮件使用的邮箱账号,password
需要在邮箱设置中开启SMTP
时创建的专用密码。
设置权限
设置.msmtprc
文件的权限,使得只有所有者可以读取或写入:
chmod 600 ~/.msmtprc
测试邮件发送
echo "This is the body of the email" | mail -s "This is the subject line" your_email@example.com
echo
的内容是邮件内容,-s
后面的字符串为邮箱主题,最后一个参数是收件邮箱,如果用户密码等配置无误的话,登录收件邮箱应该可以看到邮件,找不到的话看看垃圾箱,这类邮件可能会自动放入垃圾箱。