В таблице базы данных У меня есть 3 байтовых массива, которые содержат sqlType longblob (jpg, png, gif). Как реализовать логику отправки этих файлов с помощью javaMail в качестве прикреплений? Меня интересуют только вложения с этими файлами, а не остальная логика почты. Я понимаю, как отправлять вложения из файлов, но как это сделать из базы данных?Отправка привязки javaMail из записей базы данных
...
byte [] picture1
byte [] picture2
byte [] picture3
...
static mapping = {
picture1 column:"picture1", sqlType: "longblob"
picture2 column:"picture2", sqlType: "longblob"
picture3 column:"picture3", sqlType: "longblob"
}
...
EDIT: Я попытался передать файл изображения методу sendMail. В частности, я передал его ByteArrayDataSource. Когда есть способ сделать эту работу более чем одним форматом или мне нужно сделать «взлом»? Думаю, я мог бы сделать дополнительное поле в базе данных, где я бы сохранил расширение файла, и когда я хочу получить изображение из базы данных для отправки его в приложении, я передам его методу sendMail, соответствующему расширению. И в методе sendMail у меня будет оператор switch, который определит contentType для ByteArrayDataSource. Но мне интересно, есть ли более элегантный способ. Это мой код:
MimeBodyPart messagePart = new MimeBodyPart();
messagePart.setText(msgText);
MimeBodyPart attachmentPart = new MimeBodyPart();
ByteArrayDataSource attPic1 = new ByteArrayDataSource(p1, "image/jpeg");
attachmentPart.setDataHandler(new DataHandler(attPic1));
attachmentPart.setFileName(attPic1.getName());
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messagePart);
multipart.addBodyPart(attachmentPart);
...
Я отредактировал свой вопрос, вы можете взглянуть? Спасибо. – drago