store method
Implementation
@override
Future<List<String>> store({
required String from,
required List<String> to,
required String body,
}) async {
var mailboxes = resolveMailboxes(to);
if (mailboxes.isEmpty) return [];
var deliveredTo = <String>[];
for (var mailbox in mailboxes) {
if (!authProvider.hasUser(mailbox)) {
continue;
}
var mailboxDir = resolveMailboxDirectory(mailbox);
await mailboxDir.create(recursive: true);
var storeID = (++_storeCount) % 1000;
var storeIDStr = '$storeID'.padLeft(3, '0');
var mailFile = File(
path.join(
mailboxDir.path,
'${DateTime.now().millisecondsSinceEpoch}$storeIDStr.eml',
),
);
await mailFile.writeAsString('From: $from\nTo: ${to.join(', ')}\n$body');
deliveredTo.add(mailbox);
_log.info(
"Stored e-mail from `$from` to `${to.join(', ')}` at: ${mailFile.path}",
);
}
return deliveredTo;
}