Вложение в Dart
Письмо с текстом и файлом собирают в одном
Message: поле text задает
обычный текст, а список attachments
принимает объекты вроде FileAttachment
с путем к файлу на диске.
Для учебного примера создают файл на диске, затем
передают его в File из dart:io.
Такой код запускают только на VM:
import 'dart:io';
import 'package:mailer/mailer.dart';
import 'package:mailer/smtp_server.dart';
void main() async {
var note = File('quote.txt');
await note.writeAsString('price=19');
var smtp = SmtpServer(
'smtp.example.com',
username: 'user',
password: 'secret',
);
var message = Message()
..from = Address('writer@local.test')
..recipients.add('reader@local.test')
..subject = 'With attachment'
..text = 'See the attached note.'
..attachments.add(FileAttachment(note));
try {
await send(message, smtp);
} catch (e) {
print(e);
}
print(message.attachments.length);
}
Число 1 означает одно вложение в списке.
Имя файла на диске quote.txt попадет в
описание части письма при отправке.
Создайте файл data.bin из четырех байт
1, 2, 3 и 4,
добавьте его через FileAttachment.
Выведите message.attachments.length.
Оставьте текстовую часть с фразой "Attached."
и вложение из файла flag.txt с текстом
"ok". Выведите длину списка
attachments.