.\" Man page for NotiMail .TH MAN 1 "2 July 2024" .SH NAME NotiMail \- Monitor email inbox(es) and send notifications upon new email arrivals using various providers. .SH SYNOPSIS .B notimail [\fB-c\fR \fICONFIG\fR] [\fB--print-config\fR] [\fB--test-config\fR] [\fB--list-folders\fR] .SH DESCRIPTION NotiMail is a script designed to monitor one or more email inboxes using the IMAP IDLE feature. It sends notifications when a new email arrives. The script can connect to multiple email servers and send notifications to different platforms, including NTFY, Pushover, Gotify, and Apprise. .P Key features: .RS .IP "*" Monitors one or more email inboxes using IMAP IDLE. .IP "*" Supports monitoring of multiple folders per email account. .IP "*" Sends notifications containing the sender and subject of new emails. .IP "*" Maintains a SQLite database to ensure that emails are not processed repeatedly. .IP "*" Supports multiple notification providers: NTFY, Pushover, Gotify, and Apprise. .IP "*" Provides command-line functionalities to validate, test, and list IMAP folders. .RE .SH OPTIONS .TP \fB-c\fR, \fB--config\fR \fICONFIG\fR Specify the path to the configuration file. Defaults to \fIconfig.ini\fR. .TP \fB--print-config\fR Print the configurations set in the \fIconfig.ini\fR file. .TP \fB--test-config\fR Test if the configurations set in the \fIconfig.ini\fR file are working properly. .TP \fB--list-folders\fR List all the IMAP folders of the configured mailboxes. .SH CONFIGURATION Configuration data is read from a file named \fIconfig.ini\fR. Ensure it's correctly set up before running the script. The configuration file has multiple sections: .P .RS .IP "[GENERAL]:" .IP LogFileLocation: Path to the log file. .IP DataBaseLocation: Path to the SQLite3 database for storing processed emails. .IP LogRotationType: Type of log rotation (\fIsize\fR or \fItime\fR). .IP LogRotationSize: Size threshold for log rotation (only used if \fILogRotationType\fR is \fIsize\fR). .IP LogRotationInterval: Time interval for log rotation in days (only used if \fILogRotationType\fR is \fItime\fR). .IP LogBackupCount: Number of backup log files to retain. .IP "[EMAIL:accountX]:" Defines an email account. Replace \fIaccountX\fR with a unique identifier for each email account. .IP EmailUser: The email address. .IP EmailPass: The password for the email address. .IP Host: The email server. .IP Folders: A comma-separated list of folders to monitor. .IP "[NTFY]:" Configuration for the NTFY notification provider. .IP UrlX: The NTFY URL for sending notifications. Replace \fIX\fR with a unique number. .IP TokenX: (Optional) Token for sending notifications to protected topics. .IP "[PUSHOVER]:" Configuration for the Pushover notification provider. .IP ApiToken: Your Pushover API token. .IP UserKey: Your Pushover user key. .IP "[GOTIFY]:" Configuration for the Gotify notification provider. .IP Url: The Gotify URL for sending messages. .IP Token: Your Gotify token. .IP "[APPRISE]:" Configuration for the Apprise notification provider. .IP urls: Comma-separated list of Apprise service URLs for sending notifications. .RE .SH DEPENDENCIES Python libraries: .RS .IP "*" imaplib .IP "*" email .IP "*" requests .IP "*" configparser .IP "*" time, socket .IP "*" sqlite3 .IP "*" datetime .IP "*" signal, sys .IP "*" logging .IP "*" argparse .IP "*" threading .IP "*" BytesParser from email.parser .IP "*" apprise .RE .SH EXAMPLES 1. Running NotiMail with the default configuration file: .RS .IP "" notimail .RE 2. Specifying a custom configuration file: .RS .IP "" notimail \-c /path/to/custom_config.ini .RE 3. Checking the current configuration: .RS .IP "" notimail --print-config .RE 4. Testing the configuration settings: .RS .IP "" notimail --test-config .RE 5. Listing IMAP folders of the configured mailboxes: .RS .IP "" notimail --list-folders .RE .SH AUTHOR Stefano Marinelli .SH LICENSE BSD 3-Clause License. See the source distribution for details. .SH SEE ALSO IMAP IDLE, SQLite3, NTFY, Pushover, Gotify, Apprise.