Linux发送邮件

本文介绍了如何在Linux环境下配置Zabbix以实现通过邮件发送监控提醒的功能。主要涉及postfix服务的启动、mailx软件的安装及使用、126邮箱SMTP服务的配置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍:

最近在搞zabbix监控,需要发送邮件当做提醒,就大概研究了一下Linux主机如何向互联网上发送邮件。
Linux常见的发送邮件方法有两种一种是启动本机的邮件服务postfix,另一种是使用网上第三方邮件服务商提供的服务。例如QQ邮箱,或者是网易邮件服务。不过我建议使用网易邮箱(因为今天下午搞了一下午QQ邮箱配置,最后出现各种错误,最重要的是还没搞成功,-_-)

一、邮件发往本机存在的用户

1、开启postfix服务,作为smtp服务的agent端,不管是发往本地的邮件还是发往互联网上的邮件,此服务都要开启。

###开启postfix服务或者是sendmail服务,但是sendmail比较老了,目前主流的是postfix服务。如果没有对应的服务,使用yum安装即可

#systemctl start postfix

2、查看postfix状态,保证服务开启

#systemctl status postfix#ss -ntl查看25号端口是否监听

3、如果postfix启动较慢,可以修改/etc/hosts做好本机ip和主机名的映射,假设我的主机名是thinkerwalker,192.168.137.3 thinkerwalker,添加后,邮件的发件人就是root@thinkerwalker了,当然root是Linux中存在的用户。
4、安装mailx软件
此软件提供了发送邮件的命令mailx.

yum -y install mailx

5、执行发邮件命令

echo hello world |mailx -s "test2" root@localhost
###发件人是root@thinkerwalker,收件人是root@localhost,我们可以使用mail命令查看收到的邮件。

二、将邮件发往互联网

如果要将邮件发送到互联网,需要使用网络上的第三方邮件服务商,建议使用126或者是163的smtp服务器。这里附上126邮箱的smtp服务说明。
126邮箱POP3/SMTP/IMAP设置

1、开启postfix服务,作为smtp服务的agent端服务要开启

###开启postfix服务或者是sendmail服务,但是sendmail比较老了,目前主流的是postfix服务。如果没有对应的服务,使用yum安装即可
#systemctl start postfix

2、安装mailx软件。

yum  install mailx

3、确保自己的邮箱上开启了smtp服务,并且有自己的授权密码,此密码下面要用到。(这里不是邮箱登录密码)

4、此时只需修改/etc/mail.rc(据说若是编译安装的软件,配置文件为/etc/nail.rc)

//使用管理员账号编辑/etc/mail.rc,文件最后面添加如下配置:

###指定发件人是谁
set from=13253641509@126.com
set smtp=smtp.126.com
set smtp-auth-user=13253641509@126.com

###注意这个秘密不是你登录的邮箱密码,而是smtp服务授权的密码
set smtp-auth-password=xxxx
set smtp-auth=login

注意:如果这里的密码不是给定的smtp服务的授权密码,则将会报smtp-server: 535 Error: authentication failed的错误。

5、使用mailx命令发送邮件,也可使用mail命令,因为mail是mailx的软链接。

echo "邮件内容"|mailx -s 标题 receive@qq.com
或
mail -s 标题 receive@163.com < file

###receive@qq.com是收件人,这时候,receive@qq.com的用户将收到来自13253641509@126.com的邮件。

6、亲测可用

<think>好的,用户想了解如何在Rocky Linux发送邮件。我需要分步骤来介绍,确保结构清晰,同时注意使用正确的LaTeX格式。首先,应该考虑用户可能需要的不同方法,比如使用mail命令、配置邮件服务器,或者使用第三方服务。然后,每个步骤要详细说明,确保用户能够理解。同时,要注意潜在的问题,比如防火墙设置或者服务未启动。需要检查是否遗漏了某些关键点,比如安装必要的软件包,或者配置SSMTP等工具。还要提醒用户关于安全性,比如避免明文密码。最后,确保回答符合系统级指令的要求,使用正确的中文表达,避免技术术语过于复杂,让不同层次的用户都能理解。</think>在 Rocky Linux发送邮件可以通过多种方式实现,以下是常见的三种方法及详细操作步骤: --- ### 一、使用 `mailutils` 命令行工具 **适用场景**:快速测试或脚本集成 ```bash # 安装 mailutils(含 mail 命令) sudo dnf install mailx # 发送简单文本(交互模式) echo "邮件正文内容" | mail -s "邮件主题" recipient@example.com # 发送带附件的邮件(需安装 mutt) sudo dnf install mutt mutt -a /path/to/file -s "带附件邮件" recipient@example.com < /path/to/body.txt ``` **注意**:默认使用本地 MTA(如 Postfix),需确保服务已运行: ```bash sudo systemctl start postfix ``` --- ### 二、配置 SMTP 中继服务 **适用场景**:服务器通过第三方 SMTP 服务(如 Gmail、阿里云邮件)发信 1. 安装配置工具: ```bash sudo dnf install openssl cyrus-sasl-plain ``` 2. 创建认证文件 `/etc/sasl_passwd`: ``` [smtp.example.com]:587 username:password ``` (示例使用 Gmail): ```bash echo "[smtp.gmail.com]:587 your.email@gmail.com:app专用密码" | sudo tee /etc/sasl_passwd sudo chmod 600 /etc/sasl_passwd ``` 3. 更新 Postfix 配置 `/etc/postfix/main.cf`: ```properties relayhost = [smtp.gmail.com]:587 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/sasl_passwd smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt ``` 4. 应用配置: ```bash sudo postmap /etc/sasl_passwd sudo systemctl restart postfix ``` --- ### 三、使用 `ssmtp` 轻量级方案 **适用场景**:资源受限环境 1. 安装 ssmtp: ```bash sudo dnf install ssmtp ``` 2. 配置 `/etc/ssmtp/ssmtp.conf`: ```properties root=your_email@example.com mailhub=smtp.example.com:587 AuthUser=your_username AuthPass=your_password UseTLS=YES UseSTARTTLS=YES ``` 3. 发送测试邮件: ```bash echo "正文" | mail -s "测试标题" recipient@example.com ``` --- ### 常见问题排查 1. **连接拒绝** - 检查防火墙:`sudo firewall-cmd --list-all` - 开放 SMTP 端口:`sudo firewall-cmd --add-service=smtp --permanent` 2. **认证失败** - Gmail 需开启「允许不够安全的应用」 - 推荐使用 App Passwords 替代直接密码 3. **查看邮件队列** `mailq` 或 `postqueue -p` --- **安全建议**: - 敏感配置文件权限设置为 `600` - 避免在配置中明文存储密码,建议使用加密工具如 `gpg` 或密钥管理系统 - 生产环境建议配置 DKIM/SPF 记录防止邮件被标记为垃圾邮件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值