Skip to content

Abstract Clients

email_profile.core.abc.ImapClientABC

Bases: ABC

Contract for an IMAP connection manager.

Source code in email_profile/core/abc.py
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
class ImapClientABC(ABC):
    """Contract for an IMAP connection manager."""

    server: str
    user: str
    password: str
    port: int
    ssl: bool

    @property
    @abstractmethod
    def is_connected(self) -> bool: ...

    @abstractmethod
    def connect(self) -> ImapClientABC: ...

    @abstractmethod
    def close(self) -> None: ...

    @abstractmethod
    def noop(self) -> None: ...

    @abstractmethod
    def require(self) -> None: ...

is_connected abstractmethod property

password instance-attribute

port instance-attribute

server instance-attribute

ssl instance-attribute

user instance-attribute

close() abstractmethod

Source code in email_profile/core/abc.py
80
81
@abstractmethod
def close(self) -> None: ...

connect() abstractmethod

Source code in email_profile/core/abc.py
77
78
@abstractmethod
def connect(self) -> ImapClientABC: ...

noop() abstractmethod

Source code in email_profile/core/abc.py
83
84
@abstractmethod
def noop(self) -> None: ...

require() abstractmethod

Source code in email_profile/core/abc.py
86
87
@abstractmethod
def require(self) -> None: ...

email_profile.core.abc.SmtpClientABC

Bases: ABC

Contract for an SMTP connection manager.

Source code in email_profile/core/abc.py
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
class SmtpClientABC(ABC):
    """Contract for an SMTP connection manager."""

    @property
    @abstractmethod
    def is_connected(self) -> bool: ...

    @abstractmethod
    def connect(self) -> SmtpClientABC: ...

    @abstractmethod
    def close(self) -> None: ...

    @abstractmethod
    def send(self, message: EmailMessage) -> None: ...

is_connected abstractmethod property

close() abstractmethod

Source code in email_profile/core/abc.py
100
101
@abstractmethod
def close(self) -> None: ...

connect() abstractmethod

Source code in email_profile/core/abc.py
97
98
@abstractmethod
def connect(self) -> SmtpClientABC: ...

send(message) abstractmethod

Source code in email_profile/core/abc.py
103
104
@abstractmethod
def send(self, message: EmailMessage) -> None: ...

email_profile.core.abc.SenderABC

Bases: ABC

Contract for outgoing mail (send, reply, forward).

Source code in email_profile/core/abc.py
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
class SenderABC(ABC):
    """Contract for outgoing mail (send, reply, forward)."""

    @abstractmethod
    def send(
        self,
        to: Union[str, list[str]],
        subject: str,
        body: str = "",
        *,
        save_to_sent: bool = True,
    ) -> None: ...

    @abstractmethod
    def send_message(
        self,
        message: EmailMessage,
        *,
        save_to_sent: bool = True,
    ) -> None: ...

    @abstractmethod
    def reply(
        self,
        original: Message,
        body: str = "",
        *,
        save_to_sent: bool = True,
    ) -> None: ...

    @abstractmethod
    def forward(
        self,
        original: Message,
        to: Union[str, list[str]],
        body: str = "",
        *,
        save_to_sent: bool = True,
    ) -> None: ...

forward(original, to, body='', *, save_to_sent=True) abstractmethod

Source code in email_profile/core/abc.py
137
138
139
140
141
142
143
144
145
@abstractmethod
def forward(
    self,
    original: Message,
    to: Union[str, list[str]],
    body: str = "",
    *,
    save_to_sent: bool = True,
) -> None: ...

reply(original, body='', *, save_to_sent=True) abstractmethod

Source code in email_profile/core/abc.py
128
129
130
131
132
133
134
135
@abstractmethod
def reply(
    self,
    original: Message,
    body: str = "",
    *,
    save_to_sent: bool = True,
) -> None: ...

send(to, subject, body='', *, save_to_sent=True) abstractmethod

Source code in email_profile/core/abc.py
110
111
112
113
114
115
116
117
118
@abstractmethod
def send(
    self,
    to: Union[str, list[str]],
    subject: str,
    body: str = "",
    *,
    save_to_sent: bool = True,
) -> None: ...

send_message(message, *, save_to_sent=True) abstractmethod

Source code in email_profile/core/abc.py
120
121
122
123
124
125
126
@abstractmethod
def send_message(
    self,
    message: EmailMessage,
    *,
    save_to_sent: bool = True,
) -> None: ...