=head1 NAME public-inbox-watch - mailbox watcher for public-inbox =head1 SYNOPSIS B In ~/.public-inbox/config: [publicinbox "test"] ; generic public-inbox-config keys: address = test@example.com url = http://example.com/test inboxdir = /path/to/test.example.com.git ; config keys specific to public-inbox-watch: watch = maildir:/path/to/maildirs/.INBOX.test/ ; optional, emails that don't have a header matching ; value will be skipped watchheader = List-Id: [publicinboxwatch] ; optional, enable use of spamc(1) for checking: spamcheck = spamc ; optional, emails marked as read which appear ; here will be trained as spam and deleted from ; the inboxdirs of any public-inboxes which are ; configured for watch. ; This is global for all publicinbox.* sections watchspam = maildir:/path/to/maildirs/.INBOX.spam =head1 DESCRIPTION public-inbox-watch allows watching a mailbox or newsgroup for the arrival of new messages and automatically importing them into public-inbox git repositories and indices. public-inbox-watch is useful in situations when a user wishes to mirror an existing mailing list, but has no access to run L on a server. Unlike public-inbox-mda which is invoked once per-message, public-inbox-watch is a persistent process, making it faster for after-the-fact imports of large Maildirs. Upon startup, it scans the mailbox for new messages to be imported while it was not running. As of public-inbox 1.6.0, Maildirs, IMAP folders, and NNTP newsgroups are supported. Previous versions of public-inbox only supported Maildirs. public-inbox-watch should be run inside a L session or as a L service. Errors are emitted to stderr. =head1 OPTIONS public-inbox-watch takes no command-line options. =head1 CONFIGURATION These configuration knobs should be used in the L file =over 8 =item publicinbox..watch A location to watch. public-inbox 1.5.0 and earlier only supported C paths: [publicinbox "test"] watch = maildir:/path/to/maildirs/.INBOX.test/ public-inbox 1.6.0 supports C, C, C and C URLs: watch = nntp://news.example.com/inbox.test.group watch = imaps://mail.example.com/INBOX.test.foo Default: none =item publicinbox..watchheader [publicinbox "test"] watchheader = List-Id: If specified, L will only process mail matching the given header. If specified multiple times in public-inbox 1.5 or later, mail will be processed if it matches any of the values. Only the last value was used in public-inbox 1.4 and earlier. Default: none =item publicinboxwatch.spamcheck This may be set to C to enable the use of SpamAssassin L for filtering spam before it is imported into git history. Other spam filtering backends may be supported in the future. Default: none =item publicinboxwatch.watchspam A Maildir to watch for confirmed spam messages to appear in. Messages which appear in this folder with the (S)een flag will be hidden from all configured inboxes based on Message-ID and content matching. Messages without the (S)een flag are not considered for hiding. This hiding affects all configured public-inboxes in PI_CONFIG. As with C, C and C URLs are supported in public-inbox 1.6.0. Default: none; only for L users =back =head1 SIGNALS =over 8 =item SIGHUP Reload the config file (default: ~/.public-inbox/config) =item SIGUSR1 Rescan all watched mailboxes. This is done automatically after startup. =item SIGQUIT / SIGTERM / SIGINT Gracefully shut down. In-flight messages will be stored and indexed. =back =head1 ENVIRONMENT =over 8 =item PI_CONFIG config file. default: ~/.public-inbox/config See L =item PERL_INLINE_DIRECTORY This may affect any public-inbox processes, but is intended for long-lived ones such as C or network daemons. See L. =back =head1 CONTACT Feedback welcome via plain-text mail to L The mail archives are hosted at L and L =head1 COPYRIGHT Copyright 2016-2020 all contributors L License: AGPL-3.0+ L =head1 SEE ALSO L