Попробуйте это
body:
Column(
children: [
Text('foo'),
Expanded(
child: Container(
child: ListView.builder(
shrinkWrap: true,
itemBuilder: .......,
itemCount: .....,
),
),
),
Text('bar')
]
)
,
Этот код работал для меня.
Можно ли вставить полное отслеживание стека? Нет такой вещи как "в памяти" файл. Используя ByteArrayInputStream должно быть достаточным.
<час>необходимо реализовать Resource#getFilename (). Попробуйте следующее:
helper.addInline("cImage", new ByteArrayResource(imageByteArr){
@Override
public String getFilename() {
return fileName;
}
});
Возможно, необходимо ли использовать другой конструктор InputStreamResource?
Возможно, который стоит попробовать другую перегрузку метода:
addInline(String contentId,
InputStreamSource inputStreamSource,
String contentType)
Т.е.:
addInline("cImage",
new InputStreamSource ()
{
final private InputStream src =
new ByteArrayInputStream(imageByteArr);
public InputStream getInputStream() {return src;}
},
"image/jpeg"); // or whatever image type you use
Вы попытались изменить ресурс, который Вы подаете к addInline ()? Если бы Вы хотели, чтобы ресурс был в памяти, я попробовал бы org.springframework.core.io. ByteArrayResource.
Обновление: Я думаю, что Вы, возможно, должны были бы использовать версию DataSource addInline (), метод и затем использовать массив байтов связал объект источника данных подать данные в класс помощника. Я попробовал бы следующее:
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom("no-reply@example.com", "xyz");
helper.setTo(email);
helper.setText(body,true);
helper.setSubject(subject);
// use javax.mail.util.ByteArrayDataSource
ByteArrayDataSource imgDS = new ByteArrayDataSource( imageByteArr, "image/png");
helper.addInline("cImage", imgDS);
mailSender.send(message);
Важно правильно создать объект MimeMessageHelper для поддержки вложений и встроенных ресурсов.
Пример: MimeMessageHelper helper = new MimeMessageHelper (message, true, «UTF-8»);
В этом примере, поскольку multipart является со значением true будет использоваться MULTIPART_MODE_MIXED_RELATED, и будут поддерживаться вложения и встроенные ресурсы.