我正在一台不允许更改的 Linux 机器上工作。但是当我使用 sendmail 函数时,我收到以下错误。
sendmail: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
sendmail: warning: inet_protocols: configuring for IPv4 support only
postdrop: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
postdrop: warning: inet_protocols: configuring for IPv4 support only
postdrop: warning: unable to look up public/pickup: No such file or directory
有什么办法可以使用支持ip4的邮件功能吗?不仅错误来了。它甚至没有发送邮件。
答案1
并不是 postdrop 不支持 IPv4,而是它也期望 IPv6。
该机器显然用作postfix
邮件程序守护程序。如果系统管理员禁用了 IPv6,postfix 至少应在每次重新启动时发出警告。此外,如果您的系统管理员禁用了 IPv6,他应该完成这项工作并禁用某些明确需要 IPv6 的守护进程(例如 postfix)中的 IPv6 支持。
为了使警告消失,我建议要求系统管理员添加到/etc/postfix/main.cf
该行:
inet_protocols = ipv4
在应用程序级别可以做的是,您可以通过 TCP 发送电子邮件(到同一或另一个本地电子邮件服务器),而不是使用支持 sendmail API 的函数。
答案2
您看到的消息明确指出 IPv4是(事实上,是仅有的) 支持的协议。所以,是的,您当前正在使用支持 IPv4 的实用程序。