.\" Man page for NotiMail .TH MAN 1 "24 October 2023" .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--check-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, and Gotify. .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, and Gotify. .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--check-config\fR Check and print the configurations set in the `config.ini` file. .TP \fB--test-config\fR Test if the configurations set in the `config.ini` 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 "[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. .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 .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 --check-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.