在命令行上使用 sendmail 进行身份验证的 SMTP

在命令行上使用 sendmail 进行身份验证的 SMTP

我们在命令行上使用 sendmail 发送电子邮件,命令如下:

cat <email_contents> | sendmail -t

<email_contents> 包含发件人、收件人等字段:

To: [email protected]
Subject: Testing
From: [email protected]

以及巨大的文件、附件等。

我们现在需要使用经过身份验证的 SMTP(传递登录名和密码参数来针对 SMTP 服务器进行身份验证)。

有没有办法用这种方法来做到这一点?(使用 sendmail 参数或修改 email_contents 并考虑以下元素:

  1. 不使用 mailx 或任何其他邮件客户端。我们需要继续从命令行使用 sendmail
  2. 不修改 sendmail 配置文件 (sendmail.cf)

再次感谢问候,

答案1

作为手册

“sendmail 并非旨在用作用户界面程序”。

在 SMTP 身份验证发明之前,sendmail 命令发送邮件的功能就已经停止发展了。

当你的环境脱离石器时代,开始需要新奇的像身份验证和 TLS 这样的技术,那么您就需要摆脱困境才能跟上。

您的选择恰恰是您不想做的事情,并且您需要升级您的工具和实践以跟上时代的步伐:

  • 要么使用更高级的邮件提交代理,例如
    • mailx
    • sendmail 命令替换ssmtp确实有 smtp 身份验证支持。
    • 或其他。
  • 安装并配置本地 MDA(如 sendmail、postfix、exim 等)来执行 sendmail 命令无法为您执行的更高级的操作,并继续使用 sendmail 命令

相关内容