使用 mail 命令(简单文本邮件)
mail
是最基础的命令行工具,适合快速发送文本内容。
安装与配置
# CentOS/RHEL sudo yum install mailx
发送邮件示例
echo "邮件正文" | mail -s "主题" recipient@example.com
参数说明:
-s
:邮件主题-a
:添加附件(如-a /path/to/file
)
使用 sendmail(底层邮件传输代理)
sendmail
是Linux自带的邮件传输代理(MTA),适合脚本集成。
发送邮件示例
( echo "Subject: 主题" echo "To: recipient@example.com" echo "From: sender@example.com" echo "" echo "邮件正文" ) | sendmail -t
关键点:
- 必须包含
To
和Subject
头 - 适用于
cron
任务或脚本自动化
使用 mutt(支持附件和HTML)
mutt
是功能强大的终端邮件客户端,支持附件、HTML格式等。
安装与配置
# CentOS/RHEL sudo yum install mutt
发送邮件示例
mutt -s "主题" -a /path/to/附件文件 -- recipient@example.com < 邮件正文.txt
高级用法:
- HTML邮件:
mutt -e 'set content_type=text/html' -s "主题" recipient@example.com < body.html
- 密送:
-b bcc@example.com
使用 ssmtp(轻量级外部SMTP转发)
ssmtp
将邮件转发到外部SMTP服务器(如Gmail),适合无本地邮件服务器的环境。
安装与配置
# 安装 sudo apt install ssmtp # Debian/Ubuntu sudo yum install ssmtp # CentOS/RHEL # 编辑配置文件 /etc/ssmtp/ssmtp.conf root=your@gmail.com mailhub=smtp.gmail.com:587 AuthUser=your@gmail.com AuthPass=你的应用专用密码 # 勿用真实密码! UseSTARTTLS=YES
发送邮件
echo "正文" | mail -s "主题" recipient@example.com
安全提示:
- 为Gmail启用应用专用密码
- 配置文件权限设为
600
:sudo chmod 600 /etc/ssmtp/ssmtp.conf
使用 curl 调用邮件API(第三方服务)
通过API发送邮件(如Mailgun、SendGrid),无需配置本地SMTP。
示例:Mailgun API
curl -s --user 'api:YOUR_API_KEY' \ https://api.mailgun.net/v3/YOUR_DOMAIN/messages \ -F from='sender@example.com' \ -F to='recipient@example.com' \ -F subject='主题' \ -F text='邮件正文'
优势:
- 绕过本地邮件服务器限制
- 高送达率(商业服务优化)
安全与优化建议
- 密码安全
- 使用应用专用密码(如Gmail)
- 避免在脚本中硬编码密码,改用环境变量或加密存储
- 防垃圾邮件策略
- 配置SPF/DKIM记录(域名解析)
- 避免高频发送(如>100封/小时)
- 日志监控
- 查看发送日志:
tail -f /var/log/mail.log
(Debian)或/var/log/maillog
(RHEL)
- 查看发送日志:
如何选择?
场景 | 推荐工具 |
---|---|
快速测试/脚本通知 | mail 或 sendmail |
带附件/HTML格式邮件 | mutt |
通过外部SMTP发送 | ssmtp |
高可靠性/商业服务 | 邮件API(如curl) |
引用说明:
- GNU Mailutils 手册: https://www.gnu.org/software/mailutils/manual/
- Sendmail 官方文档: https://www.sendmail.com/sm/open_source/docs/
- Mutt 用户指南: https://gitlab.com/muttmua/mutt/-/wikis/MuttGuide
- Gmail 应用专用密码: https://support.google.com/accounts/answer/185833
- Mailgun API 文档: https://documentation.mailgun.com/
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7677.html