解决测试 centos 邮件发送失败问题

博客介绍了在Linux系统中使用yum安装mailx,配置/etc/mail.rc文件设置发送者邮件地址、SMTP服务器等信息,重启postfix服务后测试邮件发送。当出现发送失败问题时,指出邮箱密码需使用SMTP授权码,再次配置并重启服务解决问题。

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

yum install mailx -y 

vim /etc/mail.rc  #末尾添加发送者邮件地址

set from=xxxxx@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=xxxxx@qq.com
set smtp-auth-password=邮箱密码
set smtp-auth=login

systemctl restart postfix.service  #重启服务

#测试发送信息

echo "hello world" | mail -s "testmail"  xxxxxxxx@139.com

[root@bogon ~]# echo "hello world" | mail -s "testmailsmtp-server: 535 Error: ȫʹԃ˚ȨëµȂ¼¡£Ъȩȫ¿´: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
"/root/dead.letter" 11/305
. . . message not sent.
#信息发送失败 

#解决方法

vim /etc/mail.rc  #末尾添加发送者邮件地址

set from=xxxxx@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=xxxxx@qq.com
set smtp-auth-password=邮箱密码     # 邮箱密码使用SMTP授权码
set smtp-auth=login

systemctl restart postfix.service  #重启服务

 

<think>好的,我现在需要回答用户关于在CentOS 7.9上测试邮件发送命令的问题。首先,用户可能想知道有哪些命令行工具可以用来发送测试邮件,比如mailx、sendmail或者telnet。我需要确保覆盖这些常见的方法,并且给出具体的步骤示例。 接下来,用户可能对每个工具的具体安装和配置步骤感兴趣。比如,mailx可能需要安装mailx包,并且配置SMTP服务器信息。而使用telnet直接连接SMTP服务器可能更适合高级用户,需要详细说明每个步骤的命令和预期结果。 另外,用户可能不知道如何配置SMTP认证,尤其是在使用外部邮件服务时,比如Gmail或者企业的SMTP服务器。需要提醒用户替换示例中的用户名、密码和服务器地址,并注意安全性问题,比如使用应用程序专用密码。 还要考虑用户的环境,比如是否已经安装了Postfix或者Sendmail这样的MTA,如果没有的话,可能需要先安装。但测试命令可能不需要完整的MTA配置,所以可能需要使用外部SMTP服务器的方法。 需要检查是否有常见的错误,比如防火墙阻止25端口,或者DNS解析问题。在回答中应该包含一些故障排除的小贴士,比如检查端口连通性,查看邮件日志等。 最后,确保回答结构清晰,分点说明不同的方法,每个方法都有具体的命令示例和解释,这样用户可以根据自己的需求选择合适的方式。同时,语言要简洁明了,避免使用过于专业的术语,让新手也能理解。</think>--- ### 📧 CentOS 7.9 邮件发送测试方法 #### 方法一:使用 `mailx` 客户端(推荐) ```bash # 安装 mailx yum install mailx -y # 发送测试邮件(需配置SMTP) echo "测试内容" | mailx -s "测试主题" -S smtp="smtp.xxx.com:587" \ -S smtp-use-starttls -S smtp-auth=login \ -S smtp-auth-user="your_account@xxx.com" \ -S smtp-auth-password="your_password" \ recipient@example.com ``` > 📌 参数说明: > - `-s`:邮件标题 > - `-S smtp`:指定SMTP服务器及端口 > - 使用Gmail示例:替换 smtp 为 `smtp.gmail.com:587`,并开启[谷歌应用专用密码](https://myaccount.google.com/apppasswords) --- #### 方法二:通过 `telnet` 直连 SMTP 服务器 ```bash # 安装 telnet yum install telnet -y # 手动交互式发送(需base64编码认证) telnet smtp.xxx.com 25 EHLO example.com AUTH LOGIN # 输入base64编码的用户名和密码(示例:echo -n "user@xxx.com" | base64) MAIL FROM:<sender@xxx.com> RCPT TO:<recipient@example.com> DATA Subject: Telnet测试 这是通过telnet发送测试邮件 . QUIT ``` --- #### 方法三:使用 `sendmail` 命令(需配置MTA) ```bash # 安装 postfix yum install postfix -y systemctl start postfix # 发送测试邮件 echo "测试内容" | sendmail -v -Am -f sender@example.com recipient@example.com ``` --- ### 🚨 常见问题排查 1. **邮件未送达** ```bash # 查看邮件队列 mailq # 查看日志(实时监控) tail -f /var/log/maillog ``` 2. **端口不通** ```bash # 检查25/587端口连通性 telnet smtp.xxx.com 587 # 若被云服务商封禁,改用SSL端口465(需使用openssl命令) ``` 3. **认证失败** - 确认用户名/密码正确 - Gmail需开启[低安全性应用访问](https://myaccount.google.com/lesssecureapps) - 推荐使用 `swaks` 专业测试工具: ```bash yum install epel-release -y yum install swaks -y swaks --to recipient@example.com --server smtp.xxx.com:587 --auth LOGIN --auth-user user@xxx.com ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值