【问题标题】:How to make javax.mail use a local "sendmail" binary?如何使 javax.mail 使用本地“sendmail”二进制文件?
【发布时间】:2020-08-04 06:46:27
【问题描述】:

我正在使用javax.mail 创建电子邮件并将其呈现为文本表示形式。在某些情况下,我不想使用 SMTP 转发这些结果,但是例如将它们通过管道传输到sendmail-binary。这在 shell 脚本中似乎很常见,我在 Perl 生态系统中也遇到过这种情况。

javax.mail 本身或其他一些“插件”是否已经支持类似的功能?

我没有看到任何此类选项,只有 SMTP 或其他与网络相关的协议。不过,还可以通过扩展 Transport 并在 javamail.providers 中注册它而不是 SMTP 来实现自定义传输。查看可用的源代码,我看到主机、端口、URL、已建立的连接等的许多概念,它们不太适合使用管道进行本地通信。我想知道是否能够覆盖默认行为以完全不针对网络工作。

那么,这种方法是否可以完全适用于与网络无关的传输,或者“传输”根本就不是这样设计的?

如果我已经在使用 javax.mail,最好尽可能合理地集成任何自定义。

【问题讨论】:

    标签: java email jakarta-mail sendmail sendmail.exe


    【解决方案1】:

    您应该能够编写自己的传输实现,使用管道将消息发送到本地 sendmail,但是使用 SMTP 将消息发送到本地 sendmail 守护程序要容易得多;只需将其发送到 localhost。

    【讨论】:

    • 在 Windows 等平台上,本地邮件守护程序可能不可用,而在应用程序文档中经常提到 sendmail.exe 之类的东西是一种简单的解决方法。我已经在我的软件的其他部分使用了它,我想以某种方式将它提供给javax.mail 是否有意义。
    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多