Skip to main content

MIME E-mail forwarding script for Slack written in Python

Project description

PyPI version Build Status Coverage Status

MIME E-mail forwarding script for Slack(webhook) written in Python.

Demo

Fail2Ban (plain text)

Slack Demo: Plain text Fail2Ban

Slack Demo: Plain text Fail2Ban

netdata (HTML)

Slack Demo: HTML netdata

Slack Demo: HTML netdata

Requirements

  • Python
    • Python 2 >= 2.7
    • Python 3 >= 3.4

Getting Started

Prerequisites

(Optional) Use faster HTML parser than pure Python

Installation of email2slack requires gcc and the development packages of both libxml2 and libxslt. On RedHat based systems you can install these using sudo yum install gcc libxml2-devel libxslt-devel. On Ubuntu systems you can install using sudo apt-get install build-essential libxml2-dev libxslt-dev. If you are using some other system there are probably similar packages available.

(Optional) Use nkf to convert character encoding for non Unicode message

nkf binding module (https://pypi.org/project/nkf/) also requires gcc and Python development headers to build C extension. On RedHat based systems you can install these using sudo yum install gcc python-devel. On Ubuntu systems you can install using sudo apt-get install python python-pip.

Install email2slack

From PyPI

# Install email2slack
pip install -U email2slack  # without any optional modules
pip install -U email2slack[lxml]  # use lxml
pip install -U email2slack[nkf]  # use nkf
pip install -U email2slack[lxml,nkf]  # both

# Fetch configuration file from GitHub
curl https://raw.githubusercontent.com/mikoim/email2slack/master/contrib/email2slack > /usr/local/etc/email2slack

# Before using, You must edit config file
vim /usr/local/etc/email2slack

In this case, setuptools create script to call email2slack and place it in bin directory automatically. So you should use the script in Setup MTA section.

From GitHub repository

git clone https://github.com/mikoim/email2slack.git
cd email2slack

# Install email2slack
pip install -U .  # without any optional modules
pip install -U .[lxml]  # use lxml
pip install -U .[nkf]  # use nkf
pip install -U .[lxml,nkf]  # both
cp contrib/email2slack /usr/local/etc/

# Before using, You must edit config file
vim /usr/local/etc/email2slack

Setup MTA

Postfix

vim /etc/postfix/aliases

...

# notify only, not forward
user: |/usr/local/bin/email2slack

# notify and forward e-mail to another user
user: anotheruser, |/usr/local/bin/email2slack

# notify and leave e-mail on same user
user: \user, |/usr/local/bin/email2slack

# you can override default slack url, team and channel with command line option,
# which replace as default=value in each section.
# -s url / --slack url
# -t team-name / --team team-name
# -c channel-name / --channel channel-name
# -f /path/to/email2slack.conf / --config /path/to/email2slack.conf
user: "|/usr/local/bin/email2slack -c '@user'"
another: "|/usr/local/bin/email2slack -c '#random'"

...

newaliases

Contributors

Thank you for your great work!

  • @komeda-shinji
  • @mmrwoods

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for email2slack, version 1.0.0a6
Filename, size File type Python version Upload date Hashes
Filename, size email2slack-1.0.0a6-py3-none-any.whl (9.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size email2slack-1.0.0a6.tar.gz (9.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page