+$opts{name} //= $opts{imap};
+
+if ($opts{username} =~ /.*\@(.*)$/) {
+ $opts{name} = $1;
+} # if
+
+if ($opts{daemon}) {
+ # Perl complains if we reference $DB::OUT only once
+ no warnings;
+ EnterDaemonMode unless defined $DB::OUT or get_debug;
+ use warnings;
+} # if
+
+$log = Logger->new(
+ path => '/var/local/log',
+ name => "$Logger::me.$opts{name}",
+ timestamped => 'yes',
+ append => $opts{append},
+);
+
+if ($opts{username} =~ /(.*)\@/) {
+ $opts{user} = $1;
+} else {
+ $opts{user} = $opts{username};
+} # if
+
+my $msg = "Now monitoring email for $opts{user}\@$opts{name}";
+
+# Changed to loop here - better than using a goto. This kinda kills the idea of
+# using siguser2 to interrupt announceEmail.pl to kick it into re-establishing
+# the connection.
+while () {
+ Connect2IMAP;
+
+ speak $msg, $log if $opts{announce};
+
+ $log->msg($msg);
+
+ MonitorMail;
+
+ $log->dbug("$opts{name} timed out! Re-establishing connection");
+} # while