tuktuk 0.6.3 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9b23aad601ecb20c8e9f2a61ca0c5d8740fe08fb
4
- data.tar.gz: ccd26989dcc9cf8ea0cd124bc117cd8aa4ebe337
2
+ SHA256:
3
+ metadata.gz: 299486ad4c10490a6e03a48a1a340d362e45e7c3d1475948dce7d9a1cc4d70b8
4
+ data.tar.gz: 1f3bebc2cbf9e4ca5cf643a9db817a2198e5c57fde596267f3adf9275f8ad39f
5
5
  SHA512:
6
- metadata.gz: 573938ae9b56c2fea03e8cf19ae133b298e146232813b022ee2cc17e275e68cf98a353e4863eec720da3a898a7e78d3ba59926963db846bc02f215cb87eaf92f
7
- data.tar.gz: 0fb02b910a04a3f0e2472e7e65264add4eed11cc12a46f68b3a1adf820f9ff615392d24a65831da98aafa95f0a909d828f68454192111706aad905ee5fc487a1
6
+ metadata.gz: 70b11e0699eee6765b72ed737422cf7e501b55ac4456504c9b7291d2d2c8b59092463a2e00f3cafbce7324af62aafa90a61ca736a6e278c74238412c350d51a1
7
+ data.tar.gz: 4e6cd4aa14dbd0b1de9da8b86db9ac40c6f22cd3ef91a1f3abc6c90a758df6743aca5a23169c4e4955be5ae0c837591548e049a03e94d5ceb41026d023a1dcf9
data/README.md CHANGED
@@ -193,6 +193,49 @@ config.action_mailer.tuktuk_settings = {
193
193
  }
194
194
  ```
195
195
 
196
+ # Example SPK/DKIM/DMARC settings
197
+
198
+ If you're sending email from yoursite.com, the SPF record should be set for the APEX/root host, and look like this:
199
+
200
+ v=spf1 ip4:[ipv4_address] ip6:[ipv6_address] mx a include:[other_host] ~all
201
+
202
+ For example:
203
+
204
+ v=spf1 ip4:12.34.56.78 ip6:2600:3c05::f07c:92ff:fe48:b2fd mx a include:mailgun.org ~all
205
+
206
+ This tells the receiving server to accept email sent from a) the addresses explicitly mentioned (`ip4` and `ip6`),
207
+ b) from the hosts mentioned in the `include` statements, as well as c) the hosts listed as `MX` and `A` records for that domain.
208
+
209
+ As for DKIM, you should add two TXT records. The first is a simple, short one that goes under the `_domainkey` host,
210
+ and should contain the following:
211
+
212
+ t=y;o=~;
213
+
214
+ Then, a second DKIM record should be placed under `[selector]._domainkey` (e.g. `mailer._domainkey`), and should look like this:
215
+
216
+ k=rsa; p=MIIBIBANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA[...]DAQAB (public key)
217
+
218
+ And finally, your DMARC record goes under the `_dmarc` host, and goes like this:
219
+
220
+ v=DMARC1; p=none; rua=mailto:postmaster@yoursite.com; ruf=mailto:postmaster@yoursite.com
221
+
222
+ So, in summary:
223
+
224
+ (SPF) @.yoursite.com --> v=spf1 ip4:[ipv4_address] ip6:[ipv6_address] mx a include:[other_host] ~all
225
+ (DKIM1) _domainkey.yoursite.com --> t=y;o=~;
226
+ (DKIM2) [selector]._domainkey.yoursite.com --> k=rsa; p=MIIBIBANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA[...]DAQAB
227
+ (DMARC) _dmarc.yoursite.com --> v=DMARC1; p=none; rua=mailto:postmaster@yoursite.com; ruf=mailto:postmaster@yoursite.com
228
+
229
+ Now, to check wether your records are OK, you can use the `dig` command like follows:
230
+
231
+ dig yoursite.com TXT +short # should output the SPF record, under the root domain
232
+ dig mailer._domainkey.yoursite.com TXT +short # should output the DKIM record containing the key
233
+ dig _domainkey.yoursite.com TXT +short # should output the other (short) DKIM
234
+ dig _dmarc.yoursite.com TXT +short # should output the DMARC record
235
+
236
+ Remember you can query your DNS server directly with the `dig` command by adding `@name.server.com`
237
+ after the `dig` command (e.g. `dig @ns1.linode.com yoursite.com TXT`).
238
+
196
239
  # Contributions
197
240
 
198
241
  You're more than welcome. Send a pull request, including tests, and make sure you don't break anything. That's it.
data/lib/tuktuk/tuktuk.rb CHANGED
@@ -234,7 +234,7 @@ module Tuktuk
234
234
  begin
235
235
  resp = smtp.send_message(get_raw_mail(mail), get_from(mail), mail.to)
236
236
  smtp.send(:getok, 'RSET') if server['hotmail'] # fix for '503 Sender already specified'
237
- rescue Net::SMTPFatalError => e # error code 5xx, except for 500, like: 550 Mailbox not found
237
+ rescue Net::SMTPFatalError, Net::SMTPServerBusy => e # error code 5xx, except for 500, like: 550 Mailbox not found
238
238
  resp = Bounce.type(e)
239
239
  end
240
240
  responses[mail] = resp
@@ -244,7 +244,7 @@ module Tuktuk
244
244
 
245
245
  responses
246
246
  rescue => e # SMTPServerBusy, SMTPSyntaxError, SMTPUnsupportedCommand, SMTPUnknownError (unexpected reply code)
247
- logger.error "[SERVER ERROR: #{server}] #{e.message}"
247
+ logger.error "[SERVER ERROR: #{server}] #{e.class} -> #{e.message}"
248
248
  @last_error = e
249
249
  responses
250
250
  end
@@ -1,7 +1,7 @@
1
1
  module Tuktuk
2
2
  MAJOR = 0
3
3
  MINOR = 6
4
- PATCH = 3
4
+ PATCH = 4
5
5
 
6
6
  VERSION = [MAJOR, MINOR, PATCH].join('.')
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tuktuk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomás Pollak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-03 00:00:00.000000000 Z
11
+ date: 2019-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  version: 1.3.6
124
124
  requirements: []
125
125
  rubyforge_project: tuktuk
126
- rubygems_version: 2.6.13
126
+ rubygems_version: 2.7.3
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: SMTP client for Ruby with DKIM support.