我们在命令行上使用 sendmail 发送电子邮件,命令如下:
cat <email_contents> | sendmail -t
<email_contents> 包含发件人、收件人等字段:
To: [email protected]
Subject: Testing
From: [email protected]
以及巨大的文件、附件等。
我们现在需要使用经过身份验证的 SMTP(传递登录名和密码参数来针对 SMTP 服务器进行身份验证)。
有没有办法用这种方法来做到这一点?(使用 sendmail 参数或修改 email_contents 并考虑以下元素:
- 不使用 mailx 或任何其他邮件客户端。我们需要继续从命令行使用 sendmail
- 不修改 sendmail 配置文件 (sendmail.cf)
再次感谢问候,
答案1
作为手册说
“sendmail 并非旨在用作用户界面程序”。
在 SMTP 身份验证发明之前,sendmail 命令发送邮件的功能就已经停止发展了。
当你的环境脱离石器时代,开始需要新奇的像身份验证和 TLS 这样的技术,那么您就需要摆脱困境才能跟上。
您的选择恰恰是您不想做的事情,并且您需要升级您的工具和实践以跟上时代的步伐:
- 要么使用更高级的邮件提交代理,例如
mailx
- sendmail 命令替换
ssmtp
确实有 smtp 身份验证支持。 - 或其他。
- 安装并配置本地 MDA(如 sendmail、postfix、exim 等)来执行 sendmail 命令无法为您执行的更高级的操作,并继续使用 sendmail 命令