/// <see cref="IAlarmController.Initialize" /> public void Initialize(TargetMailServer targetMailServer) { _targetMailServer = targetMailServer ?? throw new ArgumentNullException(nameof(targetMailServer)); _currentState = AlarmState.Normal; _lastMessageReceivedDate = DateTime.Now; }
/// <see cref="IMailboxMonitor.StartMonitoring" /> public void StartMonitoring(TargetMailServer targetConfig) { if (_running) { throw new InvalidOperationException("Already monitoring the mailbox."); } _running = true; _imapClient = new ImapClient(); _imapClient.ServerCertificateValidationCallback = (s, c, h, e) => true; _currentReconnectDelaySecs = MailAwareConfig.ReconnectMinimumDelaySecs; _targetConfig = targetConfig; var thread = new Thread(Run); thread.Start(); }