Я только использовал сквид и не могу выдержать сравнение. Мы используем сквид для кэширования всего сайта на сервере в США (все данные вытягивают от машины в Германии). Было довольно легко настроить и работы приятно. Я нашел, что документация вид недостатка, если Вы уже не знаете, что искать.
Вы должны написать свою собственную реализацию javax.activation.DataSource
для чтения данных вложения из памяти вместо использования одной из включенных реализаций (для чтения из файла, URL-адреса и т. Д.). Если у вас есть отчет в формате PDF в виде байтового массива, вы можете реализовать DataSource, который возвращает байтовый массив, заключенный в ByteArrayOutputStream.
Сервер 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.
Начиная с JavaMail 1.4 - mail.jar - содержит javax.mail.util.ByteArrayDataSource
с уважением