Add mailbox Select
This commit is contained in:
parent
ef3379f1d9
commit
8372769fbb
3 changed files with 76 additions and 6 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue