add username_variable and password_variable to options to mail segment

This commit is contained in:
Jesse Hitch 2022-12-17 21:25:35 +01:00
parent 50d73bfbc8
commit 0fa62dd99d
No known key found for this signature in database
GPG Key ID: C01D207CE04D55D9

View File

@ -1,6 +1,8 @@
# vim:fileencoding=utf-8:noet # vim:fileencoding=utf-8:noet
from __future__ import (unicode_literals, division, absolute_import, print_function) from __future__ import (unicode_literals, division, absolute_import, print_function)
import os
import re import re
from imaplib import IMAP4_SSL_PORT, IMAP4_SSL, IMAP4 from imaplib import IMAP4_SSL_PORT, IMAP4_SSL, IMAP4
@ -17,9 +19,15 @@ class EmailIMAPSegment(KwThreadedSegment):
interval = 60 interval = 60
@staticmethod @staticmethod
def key(username, password, server='imap.gmail.com', port=IMAP4_SSL_PORT, folder='INBOX', use_ssl=None, **kwargs): def key(username, password, username_variable, password_variable, server='imap.gmail.com', port=IMAP4_SSL_PORT, folder='INBOX', use_ssl=None, **kwargs):
if use_ssl is None: if use_ssl is None:
use_ssl = (port == IMAP4_SSL_PORT) use_ssl = (port == IMAP4_SSL_PORT)
# catch if user set custom mail credential env variables
if username_variable:
username = os.environ.get(username_variable, None)
if password_variable:
password = os.environ.get(password_variable, None)
return _IMAPKey(username, password, server, port, folder, use_ssl) return _IMAPKey(username, password, server, port, folder, use_ssl)
def compute_state(self, key): def compute_state(self, key):
@ -60,6 +68,10 @@ email_imap_alert = with_docstring(EmailIMAPSegment(),
login username login username
:param str password: :param str password:
login password login password
:param str username_variable:
name of environment variable to check for login username
:param str password_variable:
name of environment variable to check for login password
:param str server: :param str server:
e-mail server e-mail server
:param int port: :param int port: