Refactored code
This commit is contained in:
		
							
								
								
									
										28
									
								
								src_old/sh_edraft/mailing/model/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src_old/sh_edraft/mailing/model/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
|  | ||||
| """ | ||||
| sh_edraft.mailing.model  | ||||
| ~~~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
|  | ||||
|  | ||||
| :copyright: (c) 2020 sh-edraft.de | ||||
| :license: MIT, see LICENSE for more details. | ||||
|  | ||||
| """ | ||||
|  | ||||
| __title__ = 'sh_edraft.mailing.model' | ||||
| __author__ = 'Sven Heidemann' | ||||
| __license__ = 'MIT' | ||||
| __copyright__ = 'Copyright (c) 2020 sh-edraft.de' | ||||
| __version__ = '2020.12.10' | ||||
|  | ||||
| from collections import namedtuple | ||||
|  | ||||
| # imports: | ||||
| from .email import EMail | ||||
| from .email_client_settings_name import EMailClientSettingsName | ||||
| from .email_client_settings import EMailClientSettings | ||||
|  | ||||
| VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||
| version_info = VersionInfo(major=2020, minor=12, micro=10) | ||||
							
								
								
									
										86
									
								
								src_old/sh_edraft/mailing/model/email.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								src_old/sh_edraft/mailing/model/email.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,86 @@ | ||||
| import re | ||||
|  | ||||
|  | ||||
| class EMail: | ||||
|  | ||||
|     def __init__(self, header: list[str] = None, subject: str = None, body: str = None, transceiver: str = None, receiver: list[str] = None): | ||||
|         self._header: list[str] = header | ||||
|  | ||||
|         self._subject: str = subject | ||||
|         self._body: str = body | ||||
|  | ||||
|         self._transceiver: str = transceiver | ||||
|         self._receiver: list[str] = receiver | ||||
|  | ||||
|     @property | ||||
|     def header(self) -> str: | ||||
|         return '\r\n'.join(self._header) | ||||
|  | ||||
|     @property | ||||
|     def header_list(self) -> list[str]: | ||||
|         return self._header | ||||
|  | ||||
|     @header.setter | ||||
|     def header(self, header: list[str]): | ||||
|         self._header = header | ||||
|  | ||||
|     @property | ||||
|     def subject(self) -> str: | ||||
|         return self._subject | ||||
|  | ||||
|     @subject.setter | ||||
|     def subject(self, subject: str): | ||||
|         self._subject = subject | ||||
|  | ||||
|     @property | ||||
|     def body(self) -> str: | ||||
|         return self._body | ||||
|  | ||||
|     @body.setter | ||||
|     def body(self, body: str): | ||||
|         self._body = body | ||||
|  | ||||
|     @property | ||||
|     def transceiver(self) -> str: | ||||
|         return self._transceiver | ||||
|  | ||||
|     @transceiver.setter | ||||
|     def transceiver(self, transceiver: str): | ||||
|         if self.check_mail(transceiver): | ||||
|             self._transceiver = transceiver | ||||
|         else: | ||||
|             raise Exception(f'Invalid email: {transceiver}') | ||||
|  | ||||
|     @property | ||||
|     def receiver(self) -> str: | ||||
|         return ','.join(self._receiver) | ||||
|  | ||||
|     @property | ||||
|     def receiver_list(self) -> list[str]: | ||||
|         return self._receiver | ||||
|  | ||||
|     @receiver.setter | ||||
|     def receiver(self, receiver: list[str]): | ||||
|         self._receiver = receiver | ||||
|  | ||||
|     @staticmethod | ||||
|     def check_mail(address: str) -> bool: | ||||
|         return bool(re.search('^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(.\\w{2,3})+$', address)) | ||||
|  | ||||
|     def add_header(self, header: str): | ||||
|         if self._header is None: | ||||
|             self._header = [] | ||||
|  | ||||
|         self._header.append(header) | ||||
|  | ||||
|     def add_receiver(self, receiver: str): | ||||
|         if self._receiver is None: | ||||
|             self._receiver = [] | ||||
|  | ||||
|         if self.check_mail(receiver): | ||||
|             self._receiver.append(receiver) | ||||
|         else: | ||||
|             raise Exception(f'Invalid email: {receiver}') | ||||
|  | ||||
|     def get_content(self, transceiver: str): | ||||
|         return str(f'From: {transceiver}\r\nTo: {self.receiver}\r\n{self.header}\r\nSubject: {self.subject}\r\n{self.body}').encode('utf-8') | ||||
							
								
								
									
										59
									
								
								src_old/sh_edraft/mailing/model/email_client_settings.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								src_old/sh_edraft/mailing/model/email_client_settings.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| import traceback | ||||
|  | ||||
| from sh_edraft.configuration.base.configuration_model_base import ConfigurationModelBase | ||||
| from sh_edraft.console.console import Console | ||||
| from sh_edraft.mailing.model.email_client_settings_name import EMailClientSettingsName | ||||
|  | ||||
|  | ||||
| class EMailClientSettings(ConfigurationModelBase): | ||||
|  | ||||
|     def __init__(self): | ||||
|         ConfigurationModelBase.__init__(self) | ||||
|  | ||||
|         self._host: str = '' | ||||
|         self._port: int = 0 | ||||
|         self._user_name: str = '' | ||||
|         self._credentials: str = '' | ||||
|  | ||||
|     @property | ||||
|     def host(self) -> str: | ||||
|         return self._host | ||||
|  | ||||
|     @host.setter | ||||
|     def host(self, host: str) -> None: | ||||
|         self._host = host | ||||
|  | ||||
|     @property | ||||
|     def port(self) -> int: | ||||
|         return self._port | ||||
|  | ||||
|     @port.setter | ||||
|     def port(self, port: int) -> None: | ||||
|         self._port = port | ||||
|  | ||||
|     @property | ||||
|     def user_name(self) -> str: | ||||
|         return self._user_name | ||||
|  | ||||
|     @user_name.setter | ||||
|     def user_name(self, user_name: str) -> None: | ||||
|         self._user_name = user_name | ||||
|  | ||||
|     @property | ||||
|     def credentials(self) -> str: | ||||
|         return self._credentials | ||||
|  | ||||
|     @credentials.setter | ||||
|     def credentials(self, credentials: str) -> None: | ||||
|         self._credentials = credentials | ||||
|  | ||||
|     def from_dict(self, settings: dict): | ||||
|         try: | ||||
|             self._host = settings[EMailClientSettingsName.host.value] | ||||
|             self._port = settings[EMailClientSettingsName.port.value] | ||||
|             self._user_name = settings[EMailClientSettingsName.user_name.value] | ||||
|             self._credentials = settings[EMailClientSettingsName.credentials.value] | ||||
|         except Exception as e: | ||||
|             Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings') | ||||
|             Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}') | ||||
|  | ||||
| @@ -0,0 +1,9 @@ | ||||
| from enum import Enum | ||||
|  | ||||
|  | ||||
| class EMailClientSettingsName(Enum): | ||||
|  | ||||
|     host = 'Host' | ||||
|     port = 'Port' | ||||
|     user_name = 'UserName' | ||||
|     credentials = 'Credentials' | ||||
		Reference in New Issue
	
	Block a user