java - 如何使 javax.mail 使用本地“sendmail”二进制文件?
问题描述
我javax.mail
用来创建电子邮件并将其呈现为文本表示。在某些情况下,我不想使用 SMTP 转发这些结果,但例如将它们通过管道传输到sendmail
-binary。这在 shell 脚本中似乎很常见,我在 Perl 生态系统中也遇到过这种情况。
像这样的东西javax.mail
本身或一些额外的“插件”已经支持了吗?
我没有看到任何这样的选项,只有 SMTP 或不同的网络相关协议。不过,还可以通过扩展Transport并在javamail.providers中注册它而不是 SMTP 来实现自定义传输。查看可用的源代码,我看到主机、端口、URL、已建立的连接等的许多概念,它们不太适合使用管道进行本地通信。我想知道是否能够覆盖默认行为,使其完全不针对网络工作。
那么,这种方法是否可以完全适用于与网络无关的传输,或者“传输”根本不是那样设计的?
如果我已经在使用javax.mail
,那么尽可能合理地集成任何自定义可能是一个好主意。
解决方案
您应该能够编写自己的传输实现,使用管道将消息发送到本地 sendmail,但是使用 SMTP 将消息发送到本地 sendmail 守护程序要容易得多;只需将其发送到本地主机。
推荐阅读
- android - 在 kotlin 中从非 UI 线程编辑 livedata
- c++ - 具有从“NameBase”类到模板“Name”类的相互继承的 C++ 习语(或模式)
- function - 我正在使用 fullpage.js 并想隐藏小屏幕的导航选项(最大宽度:700px)
- c# - 如何在 C# 中的字符串中找到某个字母?
- ruby-on-rails - Rails ActiveStorage:如何避免为每张图片重定向一次?
- python - Matlab 到 Python 的正确翻译(CID 距离)
- python - 下载多个文本文件并将它们分开?
- python - Python 身份验证在 HTTPS 页面上不起作用
- android - 如何在同一活动中移动图像并缩放或调整其大小
- javascript - 在这个正则表达式中允许空格