NotiMail/man/notimail.1
2024-07-02 14:49:33 +02:00

153 lines
4 KiB
Groff

.\" 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 <stefano@dragas.it>
.SH LICENSE
BSD 3-Clause License. See the source distribution for details.
.SH SEE ALSO
IMAP IDLE, SQLite3, NTFY, Pushover, Gotify, Apprise.