Linux

在命令行上使用 sendmail 進行身份驗證的 SMTP

  • August 26, 2021

我們在命令行上使用 sendmail 發送電子郵件,命令如下:

cat <email_contents> | sendmail -t

<email_contents> 包含發件人、收件人等欄位:

To: recipient@example.com
Subject: Testing
From: sender@example.com

以及一個巨大的文件,附件等。

我們現在需要使用經過身份驗證的 SMTP(傳遞登錄名和密碼參數以針對 SMTP 伺服器進行身份驗證)。

有沒有辦法用這種方法做到這一點?(使用 sendmail 參數或修改 email_contents 考慮以下元素:

  1. 不使用 mailx 或任何其他郵件客戶端。我們需要繼續從命令行使用 sendmail
  2. 不修改 sendmail 配置文件 (sendmail.cf)

再次感謝問候,

正如手冊所說

“sendmail 不打算用作使用者界面常式”。

sendmail 命令發送郵件的功能在 SMTP 身份驗證發明之前就停止了發展。

當您的環境擺脫石器時代並開始需要身份驗證和 TLS 等新奇技術時,您將需要擺脫困境以跟上步伐。

您的選擇正​​是您不想做的事情,您需要升級您的工具和實踐以跟上時代的步伐:

  • 要麼使用更高級的郵件送出代理,例如

    • mailx
    • ssmtp具有 smtp auth 支持的“drop in”sendmail 命令替換。
    • 或其他。
  • 安裝和配置本地 MDA(如 sendmail、postfix、exim 等)以完成 sendmail 命令無法為您完成的更高級的工作,並繼續使用 sendmail 命令

引用自:https://serverfault.com/questions/1075584