r2e - receive RSS feeds by email
r2e [options] <command>
[<args>]
r2e is a simple program which you can run in your
crontab(5). It watches RSS feeds and sends you nicely formatted email
message for each new item.
For a quick start with r2e try these steps:
r2e new your@yourdomain.com
r2e add feedname http://feed.url/somewhere.rss
r2e run
The last command should eventually be put into your crontab if you
want things be sent you automatically.
- -h, --help
- Print the rss2email help and exit.
- -v, --version
- Print the rss2email version and exit.
- --full-version
- Print the versions of Python, the compiler used to compile Python, and
packages used by rss2email.
- -c, --config
<path>
- The program configuration is read from $XDG_CONFIG_HOME/rss2mail.cfg by
default (see also FILES and ENVIRONMENT VARIABLES below). Use this option
to set a different configuration file.
- -d, --data
<path>
- Dynamic program data is read from $XDG_DATA_HOME/rss2mail.json by default
(see also FILES and ENVIRONMENT VARIABLES below). Use this option to set a
different data file.
- -V, --verbose
- Increment the logging verbosity.
- new
[<email>]
- Create a new feed database. If the <email> argument is given,
it sets the default email address that mails are sent to.
- email
[<email>]
- Update the default target email address to <email>.
- add <name>
<url> [<email>]
- Subscribe to a feed. The <name> argument gives the feed a
name for future manipulation. <url> is the URL of the feed.
The optional <email> argument is the email address to send
new items to, overriding the default address for this particular feed.
Repeat for each feed you want to subscribe to.
- run [--no-send]
[--clean] [<index> [<index>
...]]
- Scan the feeds and send emails for new items. This can be run in a cron
job.
The --no-send option stops
r2e from sending any
email. This can be useful the first time you run it, as otherwise it would
send an email for every available feed entry.
The --clean option reduces the database size by removing old
entries. It forces a download of selected feeds or all feeds, and should
only be used weekly or monthly.
If an <index> is specified, r2e will only
download that feed. <index> can be either the feed name (as set
by add) or the feed index (as shown by list).
- list
- List all the feeds in the database.
- pause
[<index> [<index> ...]]
- Pause feeds (disable fetching). The <index> option selects
the feed(s) to pause (see run for possible values). If no
<index> is given, all feeds are paused.
- unpause
[<index> [<index> ...]]
- Unpause feeds (enable fetching).
- delete
<index> [<index> [<index>
...]]
- Remove a feed (or feeds) from the database. The <index>
option selects the feed(s) to delete (see run for possible
values).
- reset
[<index> [<index> ...]]
- Forget dynamic feed data (e.g. to re-send old entries). The
<index> option selects the feed(s) to reset (see run
for possible values). If no <index> is given, all feeds are
reset.
- opmlimport
[<path>]
- Import new feeds from OPML. <path> is the file from which the
OPML data will be read. If <path> is not given r2e
reads the data from stdin.
- opmlexport
[<path>]
- Export all feeds to OPML. <path> is the file to which the
OPML data will be written. If <path> is not given r2e
writes the data to stdout.
The program's behavior can be controlled via the
$XDG_CONFIG_HOME/rss2email.cfg (see also FILES and
ENVIRONMENT VARIABLES below). The file format is similar to a
Microsoft Windows INI file. It is parsed by Python's ConfigParser class, so
see the Python documentation at
http://docs.python.org/3/library/configparser.html for format details.
The config file stores general configuration (applied to all
feeds) in the [DEFAULT] section. The new command will create a
configuration file for you, which you can edit as you see fit. The
add command will add feed-specific sections. To override any a
setting for all feeds, change the value in the [DEFAULT] section. To
override a setting for a particular feed, add that setting to the
feed-specific section. Here is an example overriding
use-publisher-email and name-format for the feedname
feed.
[DEFAULT]
from = user@rss2email.invalid
force-from = False
use-publisher-email = False
name-format = {feed-title}: {author}
...
verbose = warning
[feed.feedname]
url = http://feed.url/somewhere.rss
use-publisher-email = True
name-format = {author} ({feed.title})
You can configure the following items:
- from
- The email address messages are from by default
- use-8bit
- Transfer-Encoding. For local mailing it is safe and convenient to use
8bit.
- force-from
- True: Only use the 'from' address. False: Use the email address specified
by the feed, when possible.
- use-publisher-email
- True: Use the publisher's email if you can't find the author's. False:
Just use the 'from' email instead.
- name-format
- If empty, only use the feed email address rather than friendly name plus
email address. Available attributes may include 'feed', 'feed-name',
'feed-url', 'feed-title', 'author', and 'publisher', but only 'feed',
'feed-name', and 'feed-url' are guaranteed.
- to
- Set this to default To email addresses.
- proxy
- Set an HTTP proxy (e.g. 'http://your.proxy.here:8080/')
- feed-timeout
- Set the timeout (in seconds) for feed server response
- active
- True: Fetch, process, and email feeds. False: Don't fetch, process, or
email feeds
- digest
- True: Send a single, multi-entry email per feed per rss2email run. False:
Send a single email per entry.
- True: Generate Date header based on item's date, when possible. False:
Generate Date header based on time sent.
- A comma-delimited list of some combination of ('issued', 'created',
'modified', 'expired') expressing ordered list of preference in dates to
use for the Date header of the email.
- Set this to add bonus headers to all emails Example: bonus-header =
'Approved: joe@bob.org'
- trust-guid
- True: Receive one email per post. False: Receive an email every time a
post changes.
- trust-link
- True: Receive one email per unique link url. False: Defer to trust-guid
preference. Toggling this for existing feeds may result in duplicates,
because the old entries will not be recorded under their new link-based
ids.
- encodings
- To most correctly encode emails with international characters, we iterate
through the list below and use the first character set that works.
- post-process
- User processing hooks. Note the space after the module name. Example:
post-process = 'rss2email.post_process.downcase downcase_message'
- digest-post-process
- User processing hooks for digest messages. If 'digest' is enabled, the
usual 'post-process' hook gets to message the per-entry messages, but this
hook is called with the full digest message before it is mailed. Example:
digest-post-process = 'rss2email.post_process.downcase
downcase_message'
- html-mail
- True: Send text/html messages when possible. False: Convert HTML to plain
text.
- use-css
- Use CSS
- css
- Optional CSS styling
- unicode-snob
- Use Unicode characters instead of their ascii psuedo-replacements
- links-after-each-paragraph
- Put the links after each paragraph instead of at the end.
- inline-links
- Use inline, rather than reference, formatting for images and links.
- wrap-links
- Wrap links according to body width.
- body-width
- Wrap long lines at position. Any negative value for no wrapping, 0 for 78
width (compatibility), or any positive width.
- email-protocol
- Select protocol from: sendmail, smtp, imap, maildir
- sendmail
- Path to sendmail (or compatible)
- user-agent
- String to use as User-Agent in outgoing emails. If present, __VERSION__
and __URL__ are replaced with rss2email version number and webpage
- verbose
- Verbosity (one of 'error', 'warning', 'info', or 'debug').
- $XDG_CONFIG_HOME/rss2email.cfg
- If this file exists, it is read to configure the program.
- $XDG_DATA_HOME/rss2email.json
- The database of feeds. Use r2e to add, remove, or modify feeds, do
not edit it directly.
The environment variables used by r2e are all defined in
the XDG Base Directory Specification, which aims to standardize locations
for user-specific configuration and data files.
- XDG_CONFIG_HOME
- The preferred directory for configuration files. Defaults to
$HOME/.config.
- XDG_DATA_HOME
- The preferred directory for data files. Defaults to
$HOME/.local/share.
- XDG_RUNTIME_DIR
- The preferred directory for lockfiles. Defaults to /tmp/rss2email-UID
- XDG_CONFIG_DIRS
- A colon ':' separated, preference ordered list of base directories for
configuration files in addition to $XDG_CONFIG_HOME. Defaults to /etc/xdg.
If multiple configuration files are found in this path, they will all be
read by the ConfigParser class (see also CONFIGURATION above).
- XDG_DATA_DIRS
- A colon ':' separated, preference ordered list of base directories for
data files. Defaults to /usr/local/share/:/usr/share/. Only the first
matching file is used.
rss2email was started by Aaron Swartz, and is currently maintained
by a group of people. For a more complete list of contributors, see the
AUTHORS file in the rss2email distribution.