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.

Source Distribution

email2slack-1.0.0a6.tar.gz (9.5 kB view hashes)

Uploaded source

Built Distribution

email2slack-1.0.0a6-py3-none-any.whl (9.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page