mailsmtp 0.2.0 → 0.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd030bbe1224ef8bce71ca5bc863df0e73285c884c35527202fe2b376cdfb26f
4
- data.tar.gz: 9daf7326e361f0d214921171d4dcf4b27c2c18e209e59f8317216e09e0089185
3
+ metadata.gz: 5e3b608d7e843c5cc556588340f9cb6446398479fac9fb8b327256388ad5b254
4
+ data.tar.gz: e84314276f9336f5d0a8dcf91f4c260aa4ee0d4943a87f098a920078511c138d
5
5
  SHA512:
6
- metadata.gz: 8d74cfca2a76a9994cba453cf444e3ba2095baca76c651918b42f4d2464ae02b61cc0dbedc2e729a07fa201387a86f186d3376e98ed924001273d8955fd5a348
7
- data.tar.gz: 367b891a056bad4c67fdd3636dddbfe0ab027156d206d3c6e88d163137df1bb46fbb5b1e59afd0ad172ffec5d4f7afa0735122c382b1a66cb32ec52d853e692d
6
+ metadata.gz: 240d4561b11ef3d475d8514d8bb220147d3f29fbba4f72a01b0c692907f72b02686e5218561bf1cd41052f7181f3ec9d0791c7f4bbcc5a3d39006873f85b0ab6
7
+ data.tar.gz: 5e4565c687ee1f6d4835d6fbddcfd213d701656d97e69e66f48ed9b07007fc12bab82d92a127cf8e7367ed60be18d4d5ced1867e7b771265c03b6c78817e1434
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.1
4
+
5
+ Documentation
6
+
3
7
  ## 0.2.0
4
8
 
5
9
  - Fail `MailSmtp::Error` subclasses that omit `status` at definition time, not on `#response`
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # mailsmtp
2
2
 
3
- 📬 A boring SMTP server for Ruby
3
+ 📬 Boring SMTP server for Ruby.
4
+
5
+ Answers one question: how do I receive emails in Ruby?
4
6
 
5
7
  **mailsmtp implements the SMTP protocol so you can plug in your own logic.** Receive email in your own app — no Postfix, no ESP required. As the conversation progresses, you decide what AUTH, MAIL FROM, RCPT TO, and DATA mean.
6
8
 
@@ -20,8 +22,6 @@ Plus:
20
22
  - multi-listen across any number of host×port pairs
21
23
  - injectable logger and live connection/processing counters
22
24
 
23
-
24
-
25
25
  ## Contents
26
26
 
27
27
  - [Installation](#installation)
@@ -33,12 +33,11 @@ Plus:
33
33
  - [Reference](#reference)
34
34
  - [Hooks](#hooks)
35
35
  - [Options](#options)
36
+ - [Testing](#testing)
36
37
  - [History](#history)
37
38
  - [Contributing](#contributing)
38
39
  - [License](#license)
39
40
 
40
-
41
-
42
41
  ## Installation
43
42
 
44
43
  Add this line to your application's Gemfile:
@@ -47,7 +46,7 @@ Add this line to your application's Gemfile:
47
46
  gem "mailsmtp"
48
47
  ```
49
48
 
50
- Requires Ruby >= 3.3.4. Runtime dependencies: `base64`, `logger`.
49
+ Requires Ruby >= 3.3.4
51
50
 
52
51
  ## Getting Started
53
52
 
@@ -112,8 +111,6 @@ Multi-listen: `hosts:` / `ports:` expand to every host×port pair.
112
111
 
113
112
  ## Design
114
113
 
115
-
116
-
117
114
  ### Role — server only
118
115
 
119
116
  mailsmtp is an SMTP **server**. Outbound submission (`Net::SMTP`, your MTA, Action Mailer) stays outside the gem.
@@ -139,13 +136,10 @@ SIZE / line-length failures raise a `MailSmtp::Error` from `read` / `readpartial
139
136
 
140
137
  ## Reference
141
138
 
142
-
143
-
144
139
  ### Hooks
145
140
 
146
141
  Raising a `MailSmtp::Error` subclass sends that SMTP reply to the client. Other exceptions during `receive` become a 451 (`LocalError`). Unexpected errors outside DATA still need cleanup (prefer raising a defined error).
147
142
 
148
-
149
143
  | Hook | Signature | Return / raise |
150
144
  | ------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------ |
151
145
  | `connected` | `(session)` | — |
@@ -165,12 +159,8 @@ Raising a `MailSmtp::Error` subclass sends that SMTP reply to the client. Other
165
159
  | `unknown_command` | `(session, line)` | default raises `CommandNotRecognized` |
166
160
  | `log` | `(session, severity, msg, err:)` | — |
167
161
 
168
-
169
-
170
-
171
162
  ### Options
172
163
 
173
-
174
164
  | Option | Default | Notes |
175
165
  | ---------------------- | ------------------- | ------------------------------------------------------------------------------------------- |
176
166
  | `auth` | required arg | `:disabled` or `:required` |
@@ -192,12 +182,18 @@ Raising a `MailSmtp::Error` subclass sends that SMTP reply to the client. Other
192
182
  | `max_session_duration` | `1800` | Absolute session ceiling (seconds); `nil` to disable |
193
183
  | `logger` | stdout logger | Injectable `Logger` |
194
184
 
195
-
196
185
  `starttls: :required` requires a non-nil `tls` object. Per-IP connection caps are deferred for peers in `proxy_hosts` until PROXY rewrites the client address. Forced `#stop` aborts lingering sockets with RST (`SO_LINGER 0`). Inspect live load with `connections_count` / `processings_count` (and `connections?`).
197
186
 
187
+ ## Testing
188
+
189
+ ```sh
190
+ bundle install
191
+ rake
192
+ ```
193
+
198
194
  ## History
199
195
 
200
- View the [changelog](CHANGELOG).
196
+ View the [changelog](CHANGELOG.md).
201
197
 
202
198
  ## Contributing
203
199
 
@@ -208,8 +204,6 @@ Everyone is encouraged to help improve this project:
208
204
  - Write, clarify, or fix documentation
209
205
  - Suggest or add new features
210
206
 
211
-
212
-
213
207
  ## License
214
208
 
215
- MIT. See [LICENSE](LICENSE).
209
+ MIT. See [LICENSE](LICENSE).
@@ -1,3 +1,3 @@
1
1
  module MailSmtp
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/mailsmtp.gemspec CHANGED
@@ -6,10 +6,9 @@ Gem::Specification.new do |spec|
6
6
  spec.platform = Gem::Platform::RUBY
7
7
  spec.required_ruby_version = ">= 3.3.4"
8
8
  spec.authors = [ "Simon Lev" ]
9
- spec.email = [ "support@postrider.dev" ]
10
9
 
11
- spec.summary = "A Boring SMTP server for Ruby"
12
- spec.description = "Receive email in your own app no Postfix, no ESP required. Implements the SMTP protocol so you can plug in your own logic for auth, accepting mail, and storage."
10
+ spec.summary = "Boring SMTP server for Ruby."
11
+ spec.description = "Answers one question: how do I receive emails in Ruby? Implements the SMTP protocol so you can plug in your own logic for auth, accepting mail, and storage."
13
12
 
14
13
  spec.homepage = "https://github.com/mailpiece/mailsmtp"
15
14
  spec.license = "MIT"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailsmtp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Lev
@@ -37,11 +37,8 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
- description: Receive email in your own app no Postfix, no ESP required. Implements
41
- the SMTP protocol so you can plug in your own logic for auth, accepting mail, and
42
- storage.
43
- email:
44
- - support@postrider.dev
40
+ description: 'Answers one question: how do I receive emails in Ruby? Implements the
41
+ SMTP protocol so you can plug in your own logic for auth, accepting mail, and storage.'
45
42
  executables: []
46
43
  extensions: []
47
44
  extra_rdoc_files: []
@@ -81,5 +78,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
78
  requirements: []
82
79
  rubygems_version: 4.0.3
83
80
  specification_version: 4
84
- summary: A Boring SMTP server for Ruby
81
+ summary: Boring SMTP server for Ruby.
85
82
  test_files: []