Skip to content

chirag-jn/notipyer

Repository files navigation

Notipyer

Notification Triggers for Python

Send async email and slack notifications via Python. Get updates/crashlogs from your scripts with ease.

Installation

python -m venv env
source env/bin/activate
pip install notipyer

Email Notifications

Notipyer currently supports Gmail accounts as senders. To allow the library to use your Gmail account, make the following changes:

  1. Turn on 2-Step authentication. Ref
  2. Create an app password. Ref
  3. While creating an app password, select app as "Other (Custom name)" and enter a name of your choice.
  4. Use the password obtained from app password for the configuration step below.
  5. More information can be obtained on the wiki page here

Configuration

from notipyer.email_notify import set_email_config

SENDER_EMAIL = 'myemail@gmail.com'
SENDER_PASS = 'my_app_password'
SENDER_NAME = 'my name'
set_email_config(SENDER_EMAIL, SENDER_PASS, SENDER_NAME)

Sending Email

from notipyer.email_notify import send_email

subject = 'My Email Subject'
body = 'My Email Body'
to_recipients = ['to-email-1@domain.com', 'toemail2@domain.com'] # Can be None
cc_recipients = ['cc-email-1@domain.com', 'cc-email-2@domain.com'] # Can be None
bcc_recipients = ['bcc-email-1@domain.com', 'bcc-email-2@domain.com'] # Can be None
attachment_path = 'path_to_my_file' # Can be None
html = """\
<html>
  <head></head>
  <body>
    <p>Hi!<br>
       How are you?<br>
    </p>
  </body>
</html>
""" # Can be None
is_async = True # Sent as an async email only if this parameter is True

send_email(subject, body, to_recipients, cc_recipients, bcc_recipients, attachment_path, html_text, is_async)

Slack Notifications

Notipyer currently supports running a single workplace install only.

For setting up token keys for using slack notifications, follow the wiki page here

Configuration

from notipyer.slack_notify import set_slack_token_config

# Follow the wiki for getting the bot token
BOT_TOKEN = 'xoxb-12345678990123-1234567890123-abcdefghijklmnopqrstuvwx' 
set_slack_token_config(BOT_TOKEN)

Sending Message

from notipyer.slack_notify import send_message

# the bot should be added to the channel
channel = 'my-channel-name'
message = 'my-message'

set_slack_token_config(SLACK_TOKEN)
send_message(channel, message)

Contact

Chirag Jain