Пошлите электронное письмо с вложением с помощью Почты JAVA API, не храня в локальной машине

Я только использовал сквид и не могу выдержать сравнение. Мы используем сквид для кэширования всего сайта на сервере в США (все данные вытягивают от машины в Германии). Было довольно легко настроить и работы приятно. Я нашел, что документация вид недостатка, если Вы уже не знаете, что искать.

12
задан Rohan Kushwaha 27 April 2016 в 07:05
поделиться

3 ответа

Вы должны написать свою собственную реализацию javax.activation.DataSource для чтения данных вложения из памяти вместо использования одной из включенных реализаций (для чтения из файла, URL-адреса и т. Д.). Если у вас есть отчет в формате PDF в виде байтового массива, вы можете реализовать DataSource, который возвращает байтовый массив, заключенный в ByteArrayOutputStream.

0
ответ дан 2 December 2019 в 21:44
поделиться

Сервер Caucho / Resin конвертирует PHP-код в Java-сервлеты во время выполнения!

что немного). Итак, вы можете написать что-то вроде этого:

JavaMailSenderImpl mailSender = ... instantiate and configure JavaMailSenderImpl here
final byte[] data = .... this holds my PDF data

mailSender.send(new MimeMessagePreparator() {
   public void prepare(MimeMessage mimeMessage) throws Exception {
      MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
     // set from, to, subject using helper
     helper.addAttachment("my.pdf", new ByteArrayResource(data));
   } 
});

Данные вложения могут быть любыми абстракциями ресурсов Spring, ByteArrayResource - лишь одна из них.

Обратите внимание, что эта часть Spring API является самостоятельной. , он не требует (но извлекает выгоду из) контейнера Spring.

6
ответ дан 2 December 2019 в 21:44
поделиться

Начиная с JavaMail 1.4 - mail.jar - содержит javax.mail.util.ByteArrayDataSource

с уважением

6
ответ дан 2 December 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: