ExtronLib-CDS/extronlib/system/Email.py
2021-09-21 10:27:39 -05:00

73 lines
2.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from typing import Optional
class Email():
""" Class to send email using the configured mail settings. The confiured settings can be over ridden during instantiation.
Note: default sender will be login username@unit-name or hostname@unit-name if there is no authentication. To override, call Sender()
---
Arguments:
- smtpServer (string) - ip address or hostname of SMTP server
- port (int) - port number
- username (string) - login username for SMTP authentication
- password (string) - login password for SMTP authentication
- sslEnabled (bool) - Enable (True) or Disable (False) SSL for the connection
"""
smtpServer: str = ''
port: int = 0
username: str = ''
password: str = ''
sslEnabled: bool = False
def __init__(self, smtpServer: str=None, port: int=None, username: str=None, password: str=None, sslEnabled: bool=None):
""" Email class constructor.
Arguments:
- smtpServer (string) - ip address or hostname of SMTP server
- port (int) - port number
- username (string) - login username for SMTP authentication
- password (string) - login password for SMTP authentication
- sslEnabled (bool) - Enable (True) or Disable (False) SSL for the connection
"""
...
def Receiver(self, receiver: list[str]=None, cc: bool=False) -> None:
""" Set receivers email address(es) by passing in a list of strings. For example, ['abc@extron.com,xyz@extron.com] It will appear in the <To::: receiver> field of the email. If cc is set to True, it will appear in the <CC::: receiver> field of the email.
Arguments:
- receiver (list of strings) - receivers email address(es)
- (optional) cc (bool) - Set True to put the receiver address(es) in the cc list
Note: Receiver() must be called each time the list changes.
"""
...
def SendMessage(self, msg:str) -> None:
""" Create main body of the email and send out. Message string will be sent out as plain text.
Arguments:
- msg (string) - message to send
"""
...
def Sender(self, sender: str) -> None:
""" Set senders email address. It will appear in the <From: sender> field of the email.
Arguments:
- sender (string) - sender email address
Note: Overrides default sender.
"""
...
def Subject(self, subject: str) -> None:
""" Set emails subject. It will appear in the <Subject::: > field of the email.
Arguments:
- subject (string) - subject of the email
"""
...