Linux命令-mailq (显示待发送的邮件队列)

Linux命令-mailq (显示待发送的邮件队列) mailq 命令用于列出当前在邮件队列中等待发送的所有邮件。它是排查邮件发送延迟或失败问题的关键工具通常需要 root 或 sudo 权限执行。直接运行 mailq 命令即可查看队列摘要。 命令输出解读mailq 的输出格式取决于系统使用的邮件传输代理MTA。最常见的有以下两种MTA 系统 队列标识 典型输出列说明Postfix 队列ID以 一个随机字符串 开头 队列ID、邮件大小、进入队列的时间、发件人、收件人 以及可能的 延迟原因。Sendmail 队列ID以 一个短哈希值 开头 队列ID、邮件大小、状态/状态码、发件人、收件人。一个典型的 Postfix 输出示例-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------A1B2C3D4F5 12345 Wed Mar 18 14:30:01 senderexample.comrecipientdomain.com(连接目标服务器失败: Connection timed out)最后一行括号内的就是错误信息指明了邮件滞留的原因。 常用操作查看到队列邮件后可以进行以下管理操作重新尝试发送整个队列sudo postfix flush # 如果使用 Postfixsudo sendmail -q # 如果使用 Sendmail删除特定的队列邮件首先从 mailq 输出中找到该邮件的 队列ID然后使用对应的命令删除。sudo postsuper -d A1B2C3D4F5 # Postfix删除 ID 为 A1B2C3D4F5 的邮件sudo mailq -d A1B2C3D4F5 # Sendmail删除 ID 为 A1B2C3D4F5 的邮件清空整个邮件队列谨慎操作sudo postsuper -d ALL # Postfix删除所有队列邮件sudo mailq -d ALL # Sendmail删除所有队列邮件 实用提示• 权限大多数操作需要 sudo。• 查看详情有些系统可以使用 mailq -v 来获取更详细的输出。• 等效命令在 Postfix 系统中postqueue -p 命令与 mailq 完全等效。通过观察队列中邮件的错误信息可以快速定位是网络问题、对方服务器问题还是本地配置问题从而进行下一步修复。