我正在使用 javax.mail
创建电子邮件并将其呈现为文本表示形式。在某些情况下,我不想使用 SMTP 转发这些结果,但例如将它们通过管道传输到 sendmail
二进制文件。这在 shell 脚本中似乎很常见,我也在 Perl 生态系统中遇到过这种情况。
javax.mail
本身或其他“插件”是否已经支持类似的功能?
我没有看到任何此类选项,只有 SMTP 或不同的网络相关协议(protocol)。不过,我们还可以通过扩展Transport来额外实现自定义传输。并在 javamail.providers 中注册它而不是 SMTP 。查看可用的源代码,我看到许多主机、端口、URL、已建立的连接等概念,这些概念不太适合使用管道进行本地通信。我想知道是否能够覆盖默认行为,从而根本不工作太特定于网络。
那么,这种方法是否适用于与网络无关的传输,或者“传输”根本就不是这样设计的?
如果我已经在使用 javax.mail
,那么尽可能合理地将任何自定义与其集成可能是个好主意。
最佳答案
您应该能够编写自己的传输实现,使用管道将消息发送到本地 sendmail,但使用 SMTP 将其发送到本地 sendmail 守护程序要容易得多;只需将其发送到本地主机即可。
关于java - 如何使 javax.mail 使用本地 "sendmail"二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61344937/