Forward RSS feeds to your email address, community maintained

Overview
Downloads Latest Version License

Getting Started With rss2email

We highly recommend that you watch the rss2email project on GitHub so you can keep up to date with the latest version, bugfixes and features:

https://github.com/rss2email/rss2email

Installing rss2email

Packages

A quick way to get rss2email going is using pre-made packages. There are releases for Debian, Fedora, Gentoo, NetBSD, NixOS, OpenBSD, openSUSE, and Ubuntu.

Installing by hand

Requirements

Before you install rss2email, you'll need to make sure that a few things are in place.

  1. Ensure that a version of Python ≥3.6 is installed.
  2. Install the required Python packages.
  3. Figure out how you are going to send outgoing email. You have two options here: either use an SMTP server or a local sendmail program. So,
    • determine your outgoing email server's SMTP address, or
    • install sendmail (or a compatible replacement like postfix).
Download

Download the latest rss2email source and unpack it. You can choose from several equivalent formats.

  1. A .zip file (suggested for Microsoft Windows users) or .tar.gz file (suggested for everyone else):

    * Navigate to https://github.com/rss2email/rss2email/releases
    * Click either the ``zip`` or ``tar.gz`` icon for the latest release
    * Download and extract the archive
    
  1. A Git checkout (suggested for developers):

    $ git clone git://github.com/rss2email/rss2email.git
    
Install

From the unpacked directory, run:

$ python setup.py install

You can pass all the usual options to the install command, including --user. If you don't want to install rss2email, you can also run r2e directly from the source directory.

Upgrading to a new version

Just repeat the installation procedure for the new source package. If your config file and data file were in the old source directory, move them over to the new source directory. If the config and data files were in another directory (e.g. ~/.config and ~/.local/share), there is no need to move them.

Using rss2email

Create a new feed database to send updates to your email address:

$ r2e new [email protected]

This command will create a configuration file ($XDG_CONFIG_HOME/rss2email.cfg by default) and a feed database ($XDG_DATA_HOME/rss2email.json by default). If you'd rather those files were stored in other locations, use the --config and --data options. XDG_CONFIG_HOME defaults to $HOME/.config and XDG_DATA_HOME defaults to $HOME/.local/share.

You should edit the default configuration file now to adjust rss2email for your local system. Unless you've installed a local sendmail-equivalent, you'll need to edit the SMTP options.

Subscribe to some feeds:

$ r2e add eff https://www.eff.org/rss/updates.xml

That will cause rss2email to notify you when there is a new announcement from the Electronic Frontier Foundation. Repeat this for each feed you want to subscribe to.

When you run rss2email, it emails you about every story it hasn't seen before. But the first time you run it, that will be every story. To avoid this, you can ask rss2email not to send you any stories the first time you run it:

r2e run --no-send

Then later, you can ask it to email you new stories:

r2e run

When a run is made, rss2email stores the list of already seen items for each feed in $HOME/.local/share/rss2email.json.

Customizing rss2email

There are a number of options, described in full in rss2email/config.py, to customize the way rss2email behaves. If you want to change something, edit the configuration file that was created by r2e new.

For example, if you want to receive HTML mail, instead of having entries converted to plain text:

html-mail = True

To be notified every time a post changes, instead of just when it's first posted (see also trust-link and reply-changes, described in rss2email/config.py):

trust-guid = True

And to make the emails look as if they were sent when the item was posted:

date-header = True

If you get an error message Sender domain must exist, add the following to your configuration file:

from = [email protected]
force-from = True

You can make the email address whatever you want, but your mail server requires that the yoursite.com part actually exists.

SMTP

By default, rss2email uses sendmail (or an equivalent) to send outgoing email. If you don't have such a program installed, or simply prefer to use SMTP directly, edit the configuration file and fill in your outgoing email server's details:

[DEFAULT]
...
email-protocol = smtp
smtp-server = smtp.example.net:587
smtp-auth = False
...

If your server requires you to login, change smtp-auth = False to smtp-auth = True and enter your email username and password:

smtp-auth = True
smtp-username = username
smtp-password = password

If your server requires an TLS/SSL connection (SMTPS), change smtp-ssl = False to smtp-ssl = True. If your server does not require a SMTPS connection but you request authentication, rss2email will use STARTTLS to encrypt the connection before sending your login credentials to the server.

Post-processing

rss2email has a mechanism to post-process entries. A post-processor can be used to change the content of each entry before rss2email sends the email out. A hook is added by defining the variable post-process in the config file. It takes two arguments, the module and the function to call. For example:

post-process = rss2email.post_process.prettify process

Examples of built-in post-processors:

  • prettify.py prettifies the HTML content with BeautifulSoup.
  • redirect.py remove redirects on the post URL for privacy or durability.

Automating rss2email

More than likely you will want rss2email to run automatically at a regular interval. Under Windows this is can be easily accomplished using the Windows Task Scheduler. This site has a nice tutorial on it. Just select r2e.bat as the program to run. Once you've created the task, double click on it in the task list and change the Run entry so that run comes after r2e.bat. For example, if you installed rss2email in the C:\rss2email directory, then you would change the Run entry from C:\rss2email\r2e.bat to C:\rss2email\r2e.bat run.

On Unix/Linux systems, you should add a cron job that runs r2e. For example, run r2e every night (at 1:23 am) with:

23 1 * * * r2e run

Development

Community

User discussion and development take place on GitHub. Please feel free to post bug reports, feature requests, comments, and patches. If you do not have a GitHub account and do not wish to acquire one, please come chat in the IRC channel.

There is a developer chat on the Libera IRC server, in the rss2email channel. Feel free to idle.

Tips and tricks

When adding a new test case, it is possible to just add the new input files, and then run the test suite with FORCE_TESTDATA_CREATION=1, and the test suite will automatically generate the output file. Just make sure to check that the output file does match what is wanted before checking it in.

Custom Weapons 3 attribute support for Custom Weapons X

CW3toX Allows use of Custom Weapons 3 attributes in Custom Weapons X. Requiremen

2 Mar 01, 2022
My solutions to Advent of Code 2021 (written in Python)

Advent of Code 2021 This repository contains my solutions for the 2021 edition of Advent of Code. Please do not expect perfectly polished solutions, m

Nils 2 May 29, 2022
Is a util for xferring skinning from one mesh to another

maya_pythonplugins skinTo: Is a util for xferring skinning from one mesh to another args: :param maxInfluences: is the number of max influences on the

James Dunlop 2 Jan 24, 2022
A python library for writing parser-based interactive fiction.

About IntFicPy A python library for writing parser-based interactive fiction. Currently in early development. IntFicPy Docs Parser-based interactive f

Rita Lester 31 Nov 23, 2022
Randomly distribute members by groups making sure that every sector is represented

Generate Groups Randomly distribute members by groups making sure that every sector is represented The Scenario Imagine that you have a large group of

Jorge Gomes 1 Oct 22, 2021
App to get data from popular polish pages with job offers

Job board parser I written simple app to get me data from popular pages with job offers, because I wanted to knew immidietly if there is some new offe

0 Jan 04, 2022
Desafio Final do Mod1 do Bootcamp EDC - v2 usando a RAIS

IGTI - Bootcamp Engenheiro de Dados Cloud Módulo 1 - Desafio Final - RAIS 2020 Código do Desafio Final V2 do Bootcamp Engenheiro de Dados Cloud do IGT

Neylson Crepalde 17 Nov 02, 2022
Cobalt Strike Sleep Python Bridge

This project is 'bridge' between the sleep and python language. It allows the control of a Cobalt Strike teamserver through python without the need for for the standard GUI client. NOTE: This project

Cobalt Strike 140 Jan 04, 2023
Blender addons - A collection of Blender tools I've written for myself over the years.

gret A collection of Blender tools I've written for myself over the years. I use these daily so they should be bug-free, mostly. Feel free to take and

217 Jan 08, 2023
oracle arm registration script.

oracle_arm oracle arm registration script. 乌龟壳刷ARM脚本 本脚本优点 简单,主机配置好oci,然后下载main.tf即可,不用自己获取各种参数。 运行环境配置 本简单脚本使用python3编写,请自行配置好python3环境和requests库。(高版

test1234455 419 Jan 01, 2023
This repository contains the code for the python introduction lab

This repository contains the code for the python introduction lab. The purpose is to have a fairly simple python assignment that introduces the basic features and tools of python

1 Jan 24, 2022
Turn a raspberry pi into a Bluetooth Midi device

PiBluetoothMidSetup This will change serveral system wide packages/configurations Do not run this on your primary machine or anything you don't know h

MyLab6 40 Sep 19, 2022
Model Quantization Benchmark

MQBench Update V0.0.2 Fix academic prepare setting. More deployable prepare process. Fix setup.py. Fix deploy on SNPE. Fix convert_deploy bug. Add Qua

500 Jan 06, 2023
Python Repository for Bachelor Ski Sign.

BachelorSkiSign Python Repository for Bachelor Ski Sign. This application reads data from https://bachelorapi.azurewebsites.net/ It is written in Ciru

Winston 1 Jan 04, 2022
Howell County, Missouri, COVID-19 data and (unofficial) estimates

COVID-19 in Howell County, Missouri This repository contains the daily data files used to generate my COVID-19 dashboard for Howell County, Missouri,

Jonathan Thornton 0 Jun 18, 2022
Lenovo Yoga Ideapad Autocharge

Description This program uses the conservation_mode of Lonovo Ideapad / Yoga not

1 Jan 09, 2022
A test repository to build a python package and publish the package to Artifact Registry using GCB

A test repository to build a python package and publish the package to Artifact Registry using GCB. Then have the package be a dependency in a GCF function.

1 Feb 09, 2022
Usando Multi Player Perceptron e Regressão Logistica para classificação de SPAM

Relatório dos procedimentos executados e resultados obtidos. Objetivos Treinar um modelo para classificação de SPAM usando o dataset train_data. Class

André Mediote 1 Feb 02, 2022
A multi-platform fuzzer for poking at userland binaries and servers

litefuzz A multi-platform fuzzer for poking at userland binaries and servers litefuzz intro why how it works what it does what it doesn't do support p

52 Nov 18, 2022
Add any Program in any language you like or add a hello world Program ❣️ if you like give us :star:

Welcome to the Hacktoberfest 2018 Hello-world 📋 This Project aims to help you to get started with using Github. You can find a tutorial here What is

Aniket Sharma 1.5k Nov 16, 2022