plain.email 0.14.0__py3-none-any.whl → 0.15.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
plain/email/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # plain-email changelog
2
2
 
3
+ ## [0.15.1](https://github.com/dropseed/plain/releases/plain-email@0.15.1) (2026-01-28)
4
+
5
+ ### What's changed
6
+
7
+ - Added Settings section to README ([803fee1ad5](https://github.com/dropseed/plain/commit/803fee1ad5))
8
+
9
+ ### Upgrade instructions
10
+
11
+ - No changes required.
12
+
13
+ ## [0.15.0](https://github.com/dropseed/plain/releases/plain-email@0.15.0) (2026-01-15)
14
+
15
+ ### What's changed
16
+
17
+ - `EMAIL_HOST_PASSWORD` is now marked as a `Secret` type, ensuring the password is masked when displaying settings in CLI output ([7666190](https://github.com/dropseed/plain/commit/7666190305e13ebd1fc9b536e6415e863c2c0b25))
18
+
19
+ ### Upgrade instructions
20
+
21
+ - No changes required
22
+
3
23
  ## [0.14.0](https://github.com/dropseed/plain/releases/plain-email@0.14.0) (2026-01-13)
4
24
 
5
25
  ### What's changed
plain/email/README.md CHANGED
@@ -7,8 +7,7 @@
7
7
  - [Sending HTML emails](#sending-html-emails)
8
8
  - [Template-based emails](#template-based-emails)
9
9
  - [Attachments](#attachments)
10
- - [Configuration](#configuration)
11
- - [SMTP settings](#smtp-settings)
10
+ - [Settings](#settings)
12
11
  - [Email backends](#email-backends)
13
12
  - [SMTP backend](#smtp-backend)
14
13
  - [Console backend](#console-backend)
@@ -120,43 +119,25 @@ email.attach_file("/path/to/report.pdf")
120
119
  email.send()
121
120
  ```
122
121
 
123
- ## Configuration
124
-
125
- Configure email settings in your `settings.py`:
126
-
127
- ```python
128
- # settings.py
129
-
130
- # Required: The backend to use for sending emails
131
- EMAIL_BACKEND = "plain.email.backends.smtp.EmailBackend"
132
-
133
- # Required: Default "From" address for outgoing emails
134
- EMAIL_DEFAULT_FROM = "noreply@example.com"
135
-
136
- # Optional: Default "Reply-To" addresses
137
- EMAIL_DEFAULT_REPLY_TO = ["support@example.com"]
138
- ```
139
-
140
- ### SMTP settings
141
-
142
- When using the SMTP backend, configure your mail server:
143
-
144
- ```python
145
- # settings.py
146
-
147
- EMAIL_HOST = "smtp.example.com"
148
- EMAIL_PORT = 587
149
- EMAIL_HOST_USER = "your-username"
150
- EMAIL_HOST_PASSWORD = "your-password"
151
- EMAIL_USE_TLS = True # Use STARTTLS
152
- EMAIL_USE_SSL = False # Use implicit SSL (mutually exclusive with TLS)
153
-
154
- # Optional settings
155
- EMAIL_TIMEOUT = 10 # Connection timeout in seconds
156
- EMAIL_SSL_CERTFILE = None # Path to SSL certificate file
157
- EMAIL_SSL_KEYFILE = None # Path to SSL key file
158
- EMAIL_USE_LOCALTIME = False # Use local time in Date header (default: UTC)
159
- ```
122
+ ## Settings
123
+
124
+ | Setting | Default | Env var |
125
+ | ------------------------ | ------------- | ------------------------------ |
126
+ | `EMAIL_BACKEND` | Required | `PLAIN_EMAIL_BACKEND` |
127
+ | `EMAIL_DEFAULT_FROM` | Required | `PLAIN_EMAIL_DEFAULT_FROM` |
128
+ | `EMAIL_DEFAULT_REPLY_TO` | `None` | `PLAIN_EMAIL_DEFAULT_REPLY_TO` |
129
+ | `EMAIL_HOST` | `"localhost"` | `PLAIN_EMAIL_HOST` |
130
+ | `EMAIL_PORT` | `587` | `PLAIN_EMAIL_PORT` |
131
+ | `EMAIL_HOST_USER` | `""` | `PLAIN_EMAIL_HOST_USER` |
132
+ | `EMAIL_HOST_PASSWORD` | `""` | `PLAIN_EMAIL_HOST_PASSWORD` |
133
+ | `EMAIL_USE_TLS` | `True` | `PLAIN_EMAIL_USE_TLS` |
134
+ | `EMAIL_USE_SSL` | `False` | `PLAIN_EMAIL_USE_SSL` |
135
+ | `EMAIL_TIMEOUT` | `None` | `PLAIN_EMAIL_TIMEOUT` |
136
+ | `EMAIL_SSL_CERTFILE` | `None` | `PLAIN_EMAIL_SSL_CERTFILE` |
137
+ | `EMAIL_SSL_KEYFILE` | `None` | `PLAIN_EMAIL_SSL_KEYFILE` |
138
+ | `EMAIL_USE_LOCALTIME` | `False` | `PLAIN_EMAIL_USE_LOCALTIME` |
139
+
140
+ See [`default_settings.py`](./default_settings.py) for more details.
160
141
 
161
142
  ## Email backends
162
143
 
@@ -1,3 +1,5 @@
1
+ from plain.runtime import Secret
2
+
1
3
  # The email backend to use. For possible shortcuts see plain.email.
2
4
  # The default is to use the SMTP backend.
3
5
  # Third-party backends can be specified by providing a Python path
@@ -19,7 +21,7 @@ EMAIL_USE_LOCALTIME: bool = False
19
21
 
20
22
  # Optional SMTP authentication information for EMAIL_HOST.
21
23
  EMAIL_HOST_USER: str = ""
22
- EMAIL_HOST_PASSWORD: str = ""
24
+ EMAIL_HOST_PASSWORD: Secret[str] = "" # type: ignore[assignment]
23
25
  EMAIL_USE_TLS: bool = True
24
26
  EMAIL_USE_SSL: bool = False
25
27
  EMAIL_SSL_CERTFILE: str | None = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.email
3
- Version: 0.14.0
3
+ Version: 0.15.1
4
4
  Summary: Everything you need to send email in Plain.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-Expression: BSD-3-Clause
@@ -18,8 +18,7 @@ Description-Content-Type: text/markdown
18
18
  - [Sending HTML emails](#sending-html-emails)
19
19
  - [Template-based emails](#template-based-emails)
20
20
  - [Attachments](#attachments)
21
- - [Configuration](#configuration)
22
- - [SMTP settings](#smtp-settings)
21
+ - [Settings](#settings)
23
22
  - [Email backends](#email-backends)
24
23
  - [SMTP backend](#smtp-backend)
25
24
  - [Console backend](#console-backend)
@@ -131,43 +130,25 @@ email.attach_file("/path/to/report.pdf")
131
130
  email.send()
132
131
  ```
133
132
 
134
- ## Configuration
135
-
136
- Configure email settings in your `settings.py`:
137
-
138
- ```python
139
- # settings.py
140
-
141
- # Required: The backend to use for sending emails
142
- EMAIL_BACKEND = "plain.email.backends.smtp.EmailBackend"
143
-
144
- # Required: Default "From" address for outgoing emails
145
- EMAIL_DEFAULT_FROM = "noreply@example.com"
146
-
147
- # Optional: Default "Reply-To" addresses
148
- EMAIL_DEFAULT_REPLY_TO = ["support@example.com"]
149
- ```
150
-
151
- ### SMTP settings
152
-
153
- When using the SMTP backend, configure your mail server:
154
-
155
- ```python
156
- # settings.py
157
-
158
- EMAIL_HOST = "smtp.example.com"
159
- EMAIL_PORT = 587
160
- EMAIL_HOST_USER = "your-username"
161
- EMAIL_HOST_PASSWORD = "your-password"
162
- EMAIL_USE_TLS = True # Use STARTTLS
163
- EMAIL_USE_SSL = False # Use implicit SSL (mutually exclusive with TLS)
164
-
165
- # Optional settings
166
- EMAIL_TIMEOUT = 10 # Connection timeout in seconds
167
- EMAIL_SSL_CERTFILE = None # Path to SSL certificate file
168
- EMAIL_SSL_KEYFILE = None # Path to SSL key file
169
- EMAIL_USE_LOCALTIME = False # Use local time in Date header (default: UTC)
170
- ```
133
+ ## Settings
134
+
135
+ | Setting | Default | Env var |
136
+ | ------------------------ | ------------- | ------------------------------ |
137
+ | `EMAIL_BACKEND` | Required | `PLAIN_EMAIL_BACKEND` |
138
+ | `EMAIL_DEFAULT_FROM` | Required | `PLAIN_EMAIL_DEFAULT_FROM` |
139
+ | `EMAIL_DEFAULT_REPLY_TO` | `None` | `PLAIN_EMAIL_DEFAULT_REPLY_TO` |
140
+ | `EMAIL_HOST` | `"localhost"` | `PLAIN_EMAIL_HOST` |
141
+ | `EMAIL_PORT` | `587` | `PLAIN_EMAIL_PORT` |
142
+ | `EMAIL_HOST_USER` | `""` | `PLAIN_EMAIL_HOST_USER` |
143
+ | `EMAIL_HOST_PASSWORD` | `""` | `PLAIN_EMAIL_HOST_PASSWORD` |
144
+ | `EMAIL_USE_TLS` | `True` | `PLAIN_EMAIL_USE_TLS` |
145
+ | `EMAIL_USE_SSL` | `False` | `PLAIN_EMAIL_USE_SSL` |
146
+ | `EMAIL_TIMEOUT` | `None` | `PLAIN_EMAIL_TIMEOUT` |
147
+ | `EMAIL_SSL_CERTFILE` | `None` | `PLAIN_EMAIL_SSL_CERTFILE` |
148
+ | `EMAIL_SSL_KEYFILE` | `None` | `PLAIN_EMAIL_SSL_KEYFILE` |
149
+ | `EMAIL_USE_LOCALTIME` | `False` | `PLAIN_EMAIL_USE_LOCALTIME` |
150
+
151
+ See [`default_settings.py`](./default_settings.py) for more details.
171
152
 
172
153
  ## Email backends
173
154
 
@@ -1,7 +1,7 @@
1
- plain/email/CHANGELOG.md,sha256=tI_mJUym2nXNdA9ssFqFVucctbPESvGOP-vLdPkQO-o,2906
2
- plain/email/README.md,sha256=JRL1Q3S0KAnZSe2u7xp56kgLPq3zFUDeckYWOT9igr8,7024
1
+ plain/email/CHANGELOG.md,sha256=TUdoEzK7duzVWckpr_VkdjqmOAS5kaqaP3Q72JaMQiM,3552
2
+ plain/email/README.md,sha256=XCaT4KAzcw8t_14vtSdZyDUK6-OjSlf5UdEk2bZJrCU,7243
3
3
  plain/email/__init__.py,sha256=_wQC03wth7dgSqKaFG3IGkdJN5yhXfDH7M7pLNYm7IQ,3391
4
- plain/email/default_settings.py,sha256=B2V9UOq4MDG5VQM9VKTRiBqQ6ppUyoRFq9j7Qi9bO_M,811
4
+ plain/email/default_settings.py,sha256=dZlKwsLBAJSZ8cRt117Db3qPf97xbPUaGEHbUmlv2CU,881
5
5
  plain/email/message.py,sha256=Wlb0qyxmIow3dWIvFEfDuj-G041x-L-aa7GU0YiSr64,23144
6
6
  plain/email/utils.py,sha256=b9DzVVvI6BRwIVWSud_sRRchanBztH1p6qCy5-g9-ns,610
7
7
  plain/email/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -9,7 +9,7 @@ plain/email/backends/base.py,sha256=7XDlJv07IMSES10pduu_ayCaznD2kwIyo3iAHWg9uQs,
9
9
  plain/email/backends/console.py,sha256=M7xW13XMjrozwnkkfTv2RxkV0vKp20EvTpIQpIfCGek,1745
10
10
  plain/email/backends/filebased.py,sha256=mEqxazVXHihkndshgkD56qMoXww5CQpZOpsoPh0tQEw,2733
11
11
  plain/email/backends/smtp.py,sha256=IqpYXXsf1LTh1uqHR9_gGyYTHwuRdtdX2kUtaRQY01Q,6258
12
- plain_email-0.14.0.dist-info/METADATA,sha256=CWJrcg77e1ka7ucp9uE1ed4JrTPM8EzjWDUA0XdHRy4,7337
13
- plain_email-0.14.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
14
- plain_email-0.14.0.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
15
- plain_email-0.14.0.dist-info/RECORD,,
12
+ plain_email-0.15.1.dist-info/METADATA,sha256=ik0NwUnOgUXWHMC2nH_1URa_zpIhZhMnH7lyCzsMa60,7556
13
+ plain_email-0.15.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
14
+ plain_email-0.15.1.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
15
+ plain_email-0.15.1.dist-info/RECORD,,