Как заставить javax.mail использовать локальный двоичный файл sendmail? - PullRequest
0 голосов
/ 21 апреля 2020

Я использую javax.mail для создания электронных писем и их отображения в текстовом представлении. При определенных условиях я не хочу пересылать эти результаты, используя SMTP, но, например, перенаправить их в sendmail -бинарный файл. Это кажется довольно распространенным в случае сценариев оболочки, и я сталкивался с этим и в Perl -экосистеме.

Это нечто вроде того, что поддерживается самим javax.mail или каким-то дополнительным "плагином" "уже?

Я не вижу такой опции, только SMTP или другие сетевые протоколы. Однако можно дополнительно реализовать пользовательский транспорт, расширив Transport и зарегистрировав его вместо SMTP в javamail.providers . Глядя на доступный исходный код, я вижу много концепций хостов, портов, URL-адресов, установленных соединений и т. Д. c., Которые не очень хорошо подходят для локальной связи с использованием канала. Интересно, можно ли переопределить поведение по умолчанию, чтобы оно вообще не работало с сетевыми настройками c.

Итак, может ли этот подход вообще работать для не связанных с сетью транспортов или это "Транспорт"? «просто не спроектирован таким образом?

Если бы я уже использовал javax.mail, было бы неплохо объединить любую настройку с этим настолько, насколько это разумно.

1 Ответ

0 голосов
/ 22 апреля 2020

Вы должны быть в состоянии написать свою собственную реализацию транспорта, которая отправляет сообщение в локальный sendmail, используя канал, но намного проще отправить его в локальный демон sendmail, используя SMTP; просто отправьте его на localhost.

...