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 +5 -5
- data/lib/smailr/cli.rb +16 -2
- data/lib/smailr/model.rb +9 -3
- data/lib/smailr/version.rb +3 -0
- data/lib/smailr.rb +1 -2
- metadata +69 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 6effb269294c6ec1f81fc25e2e05ee1e3f4ae6d98eef3d44a0fa64e939d8a8bc
|
|
4
|
+
data.tar.gz: 8a2e12d33594449fdacf111a06a4813e65454b45141af4bd884de25edb5c3c06
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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 '
|
|
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
|
-
|
|
34
|
-
|
|
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
|
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.
|
|
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:
|
|
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: '
|
|
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: '
|
|
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
|
-
|
|
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
|
+
...
|