如何使javax.mail使用本地“ sendmail”二进制文件?

问题描述 投票:0回答:1

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

javax.mail本身所支持的还是已经有一些其他“插件”?

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

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

如果我已经在使用javax.mail,则尽可能合理地集成任何自定义项可能是一个好主意。

java email javamail sendmail sendmail.exe
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.