1
0
Fork 0

Add mailbox Select

This commit is contained in:
Florian RICHER (MrDev023) 2022-04-26 21:28:49 +02:00
parent ef3379f1d9
commit 8372769fbb
3 changed files with 76 additions and 6 deletions

View file

@ -4,7 +4,9 @@ import 'dart:math';
import 'package:desktopapp/classes/stream_element.dart';
import 'package:desktopapp/utils/logger.dart';
import 'package:desktopapp/utils/requests.dart';
import 'package:desktopapp/widgets/popups/mailbox_select.dart';
import 'package:enough_mail/enough_mail.dart';
import 'package:flutter/cupertino.dart';
class Mailer {
static final List<String> customMessages = [
@ -17,6 +19,7 @@ class Mailer {
/// High level mail API example
static Future<bool> connect({
required BuildContext context,
required String email,
required String password,
required StreamController<StreamElement> streamController,
@ -37,9 +40,11 @@ class Mailer {
Logger.log(LoggerType.info, Mailer, 'Connected to $email');
streamController
.add(StreamElement(StreamElementType.log, 'Connected to $email'));
await _mailClient!.selectInbox();
streamController.add(
StreamElement(StreamElementType.log, 'INBOX selected for $email'));
var mailboxes = await _mailClient!.listMailboxes();
var mailbox = await MailBoxSelect.show(context, mailboxes: mailboxes);
await _mailClient!.selectMailbox(mailbox!);
streamController.add(StreamElement(
StreamElementType.log, '${mailbox.name} selected for $email'));
List<String> whitelist = [email, ...whiteListEmail];
streamController.add(StreamElement(
StreamElementType.log, 'Listen for emails: ${whitelist.join(', ')}'));
@ -49,9 +54,9 @@ class Mailer {
await _mailClient!.startPolling(const Duration(seconds: 1));
_startDebugProfiler(streamController);
return true;
} on MailException catch (e) {
streamController.add(StreamElement(StreamElementType.log, e.toString()));
Logger.log(LoggerType.error, Mailer, 'High level API failed with $e');
} catch (e) {
streamController
.add(StreamElement(StreamElementType.error, e.toString()));
return false;
}
}