smailr 0.7.0 → 0.8.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
- SHA1:
3
- metadata.gz: dd1155588b6637a588d5284aefb168421f2a5325
4
- data.tar.gz: d750025813678d2d6aadff17b3ebf3efc729fd7e
2
+ SHA256:
3
+ metadata.gz: 6effb269294c6ec1f81fc25e2e05ee1e3f4ae6d98eef3d44a0fa64e939d8a8bc
4
+ data.tar.gz: 8a2e12d33594449fdacf111a06a4813e65454b45141af4bd884de25edb5c3c06
5
5
  SHA512:
6
- metadata.gz: a1d9da463d534d61cc9e1e7942d11a7d7756b18b74b150c85e31498cc2b3e1f12778c00be5fcbe9c444b9b0434cd22e2f32e070c0f9845d344602bff906ce034
7
- data.tar.gz: 2297af6c3b3ce95dd82f9cc6279487f2de6cf37c8faaeb8141e768a0b6596890024c21c1f175ed8d969bb295b054350fada39601d2ba36f3c84cbc592919965d
6
+ metadata.gz: 13a0e5bb2fb7d5d3e0e92c87a774a44750015d6daf8feb579ed1391490893f866ce45ef38d692b8473fc41b024977b476c0fc02c84cf3183b23b33c6107341e8
7
+ data.tar.gz: 847ef00e13a7d0e5624ad2f5b3609fcdbb94a3170cda4245eb7c4cfc7e23d77460ff8d368f6b4372123af23309f0c867ad7e1ba960932b49b97461db8a78f54e
data/lib/smailr/cli.rb CHANGED
@@ -1,5 +1,11 @@
1
1
  require 'commander'
2
2
 
3
+ class String
4
+ def unindent
5
+ gsub(/^#{scan(/^\s*/).min_by{|l|l.length}}/, "")
6
+ end
7
+ end
8
+
3
9
  module Smailr
4
10
  class Cli
5
11
 
@@ -52,7 +58,7 @@ module Smailr
52
58
  c.example 'Add a domain', 'smailr add example.com'
53
59
  c.example 'Add a mailbox', 'smailr add user@example.com'
54
60
  c.example 'Add an alias', 'smailr add alias@localdom.com --alias user@example.com,user1@example.com'
55
- c.example 'Setup DKIM for a domain', 'smailr add ono.at --dkim'
61
+ c.example 'Setup DKIM for a domain', 'smailr add ono.at --dkim mail'
56
62
  c.option '--alias DESTINATION', String, 'Specify the alias destination.'
57
63
  c.option '--password PASSWORD', String, 'The password for a new mailbox. If you omit this option, it prompts for one.'
58
64
  c.option '--dkim SELECTOR', String, 'Add a DKIM Key with the specified selector for domain.'
@@ -65,8 +71,16 @@ module Smailr
65
71
  if options.dkim
66
72
  selector = options.dkim
67
73
  key = Smailr::Dkim.add(address, selector)
74
+ key_fmt = key.split("\n").slice(1..-2).join
75
+
76
+ puts <<-EOM.unindent
77
+ .
78
+ DKIM is active now, please setup domainkey records in zone #{address}:
68
79
 
69
- puts "public-key " + key.split("\n").slice(1..-2).join
80
+ _domainkey IN TXT "t=y\; o=~\;"
81
+ #{selector}._domainkey IN TXT "v=DKIM1\; t=y\; k=rsa\; p=#{key_fmt}
82
+ .
83
+ EOM
70
84
  else
71
85
  Smailr::Domain.add(address)
72
86
  end
data/lib/smailr/model.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'digest/sha1'
1
+ require 'bcrypt'
2
2
 
3
3
  module Smailr
4
4
  module Model
@@ -30,8 +30,14 @@ module Smailr
30
30
  many_to_one :domain
31
31
 
32
32
  def password=(clear)
33
- self[:password_scheme] = '{SHA}'
34
- self[:password] = Digest::SHA1.hexdigest(clear)
33
+ crypted = BCrypt::Password.create(
34
+ clear,
35
+ cost: BCrypt::Engine::DEFAULT_COST,
36
+ salt: BCrypt::Engine.generate_salt
37
+ )
38
+
39
+ self[:password_scheme] = '{BLF-CRYPT}'
40
+ self[:password] = crypted
35
41
  end
36
42
 
37
43
  def rm_related
@@ -0,0 +1,3 @@
1
+ module Smailr
2
+ VERSION = '0.8.1'
3
+ end
data/lib/smailr.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'rubygems'
2
+ require 'smailr/version'
2
3
 
3
4
  require 'fileutils'
4
5
  require 'logger'
@@ -20,8 +21,6 @@ module Smailr
20
21
  # Exception Classes
21
22
  class MissingDomain < StandardError ; end
22
23
 
23
- VERSION = '0.7.0'
24
-
25
24
  class << self;
26
25
  attr_accessor :config
27
26
  attr_accessor :config_files
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smailr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Schlesinger
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2016-01-19 00:00:00.000000000 Z
10
+ date: 2026-05-05 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: commander
@@ -26,18 +25,80 @@ dependencies:
26
25
  version: '4.3'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: sequel
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: '6.0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '5.0'
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '6.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: bcrypt
29
48
  requirement: !ruby/object:Gem::Requirement
30
49
  requirements:
31
50
  - - "~>"
32
51
  - !ruby/object:Gem::Version
33
- version: '4.26'
52
+ version: '3.1'
34
53
  type: :runtime
35
54
  prerelease: false
36
55
  version_requirements: !ruby/object:Gem::Requirement
37
56
  requirements:
38
57
  - - "~>"
39
58
  - !ruby/object:Gem::Version
40
- version: '4.26'
59
+ version: '3.1'
60
+ - !ruby/object:Gem::Dependency
61
+ name: net-smtp
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ - !ruby/object:Gem::Dependency
75
+ name: minitest
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ type: :development
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ - !ruby/object:Gem::Dependency
89
+ name: minitest-mock
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ type: :development
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
41
102
  description: |-
42
103
  Smailr is a CLI tool which lets you manage your virtual mailhosting setup
43
104
  from the shell. It currently uses SQLite as a backend, samples for Dovecot/Exim provided.
@@ -60,6 +121,7 @@ files:
60
121
  - lib/smailr/mailbox.rb
61
122
  - lib/smailr/model.rb
62
123
  - lib/smailr/setup.rb
124
+ - lib/smailr/version.rb
63
125
  - migrations/001_domains.rb
64
126
  - migrations/002_mailboxes.rb
65
127
  - migrations/003_aliases.rb
@@ -108,9 +170,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
170
  requirements:
109
171
  - Exim
110
172
  - Dovecot
111
- rubyforge_project:
112
- rubygems_version: 2.4.6
113
- signing_key:
173
+ rubygems_version: 4.0.6
114
174
  specification_version: 4
115
175
  summary: Simple MAIL manageR - Virtual mail hosting management from the CLI
116
176
  test_files: []
177
+ ...