smailr 0.5.3 → 0.5.4

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.
@@ -126,7 +126,7 @@ default_pass_scheme = MD5
126
126
  # string. For example:
127
127
 
128
128
  password_query = \
129
- SELECT mailboxes.password AS password, \
129
+ SELECT '{SHA}' || mailboxes.password AS password, \
130
130
  mailboxes.localpart AS username, \
131
131
  domains.fqdn AS domain \
132
132
  FROM mailboxes, domains \
data/contrib/dovecot.conf CHANGED
@@ -22,7 +22,7 @@
22
22
  # Protocols we want to be serving: imap imaps pop3 pop3s managesieve
23
23
  # If you only want to use dovecot-auth, you can set this to "none".
24
24
  #protocols = imap imaps
25
- protocols = imap imaps
25
+ protocols = imap imaps pop3 pop3s
26
26
 
27
27
  # A space separated list of IP or host addresses where to listen in for
28
28
  # connections. "*" listens in all IPv4 interfaces. "[::]" listens in all IPv6
@@ -376,7 +376,7 @@ mail_debug = no
376
376
  # Show more verbose process titles (in ps). Currently shows user name and
377
377
  # IP address. Useful for seeing who are actually using the IMAP processes
378
378
  # (eg. shared mailboxes or if same uid is used for multiple accounts).
379
- #verbose_proctitle = no
379
+ verbose_proctitle = yes
380
380
 
381
381
  # Valid UID range for users, defaults to 500 and above. This is mostly
382
382
  # to make sure that users can't log in as daemons or other system users.
data/contrib/exim4.conf CHANGED
@@ -5,9 +5,11 @@ EXIM_CONF = /etc/exim4
5
5
 
6
6
  SQLITE_DATABASE_FILE = EXIM_CONF/smailr.sqlite
7
7
 
8
+ DKIM_SELECTOR = mx
9
+
8
10
  DKIM_DOMAIN = ${lc:${domain:$h_from:}}
9
11
 
10
- DKIM_SELECTOR = mx
12
+ TEERGRUBE = 25s
11
13
 
12
14
  #############################################################################
13
15
  # Database Queries
@@ -93,12 +95,15 @@ message_size_limit = 20M
93
95
  # Number of unknown SMTP commands we accept before dropping the connection
94
96
  smtp_max_unknown_commands = 10
95
97
 
98
+ # Drop the sender if they start spewing commands before getting the 220 response
99
+ smtp_enforce_sync = true
100
+
96
101
  bounce_return_size_limit = 10K
97
102
 
98
103
  # These protections need to take into account MailScanners need to do
99
104
  # MIME explosion.
100
- check_spool_inodes = 1000
101
- check_spool_space = 100M
105
+ check_spool_inodes = 1000
106
+ check_spool_space = 100M
102
107
 
103
108
  # do a reverse DNS lookup on every connection
104
109
  host_lookup = *
@@ -139,7 +144,7 @@ av_scanner = clamd:/var/run/clamav/clamd.ctl
139
144
  # ACL Configuration
140
145
 
141
146
  # We use the following ACLs:
142
- acl_smtp_connect = accept
147
+ acl_smtp_connect = acl_check_conn
143
148
  acl_smtp_helo = accept
144
149
  acl_smtp_starttls = accept
145
150
  acl_smtp_mail = accept
@@ -152,13 +157,18 @@ acl_smtp_expn = deny
152
157
 
153
158
  begin acl
154
159
 
155
- acl_check_rcpt:
156
- # Accept if source is local SMTP (not over TCP). We do this by testing
157
- # for an empty sending host field.
158
- accept hosts = :
160
+ acl_check_conn:
161
+ # Accept everything from localhost and trustworthy hosts
162
+ accept hosts = : 127.0.0.1/8 : ::::1 : +relay_from_hosts
163
+
164
+ # Play a bit of good/bad cop with senders, by delaying the initial 220
165
+ # while enforcing SMTP protocol synchronization on both sides.
166
+ accept delay = ${randint:5}s
159
167
 
168
+
169
+ acl_check_rcpt:
160
170
  # Accept everything from localhost
161
- accept hosts = 127.0.0.1/8 : ::::1
171
+ accept hosts = : 127.0.0.1/8 : ::::1
162
172
 
163
173
  # Deny if the local part contains @ or % or / or | or !. These are rarely
164
174
  # found in genuine local parts, but are often tried by people looking to
@@ -178,6 +188,14 @@ acl_check_rcpt:
178
188
  !verify = reverse_host_lookup
179
189
  delay = TEERGRUBE
180
190
 
191
+ # Check ip against RBLs
192
+ deny message = REJECTED - ${sender_host_address} is blacklisted at $dnslist_domain ($dnslist_value); ${dnslist_text}
193
+ !dnslists = hostkarma.junkemailfilter.com=127.0.0.1,127.0.0.3
194
+ dnslists = zen.spamhaus.org/<;$sender_host_address;$sender_address_domain :\
195
+ hostkarma.junkemailfilter.com=127.0.0.2 :\
196
+ nomail.rhsbl.sorbs.net/$sender_address_domain
197
+ delay = TEERGRUBE
198
+
181
199
  # Accept if the address is in a local domain, but only if the recipient can
182
200
  # be verified. Otherwise deny. The "endpass" line is the border between
183
201
  # passing on to the next ACL statement (if tests above it fail) or denying
@@ -222,6 +240,12 @@ acl_check_data:
222
240
 
223
241
  begin routers
224
242
 
243
+ system_aliases:
244
+ debug_print = "R: system_aliases for $local_part@$domain"
245
+ driver = redirect
246
+ domains = $primary_hostname
247
+ data = ${lookup{$local_part}lsearch{/etc/aliases}}
248
+
225
249
  # Aliases for local mailboxes
226
250
  virtual_alias:
227
251
  debug_print = "R: virtual_alias for $local_part@$domain"
data/lib/smailr/setup.rb CHANGED
@@ -1,12 +1,30 @@
1
1
  module Smailr
2
2
  module Setup
3
3
  def self.run
4
+
5
+ if Process.euid != 0
6
+ say "ERROR: YOU ARE NOT RUNNING THIS SCRIPT WITH ROOT PRIVILEGES, EXITING."
7
+ exit
8
+ end
9
+
4
10
  # This is still hardcoded, required too much brainfuck to deal
5
11
  # with mulitple possible configuration files locations ATM.
6
12
  if File.exists?("/etc/smailr.yml")
13
+ say "SYSTEM UPGRADE"
7
14
  say "---------------------------------------------------------------------------"
8
- say "Detected an existing smailr configuration on your system in /etc/smailr.yml"
9
- if agree "Do you want to load the defaults from there, install a new one, or abort?"
15
+ say "You appear to already have a copy of smailr installed. Are you sure you want"
16
+ say "proceed with the setup routine?"
17
+ say ""
18
+ say "This script is going to replace exim and dovecot configuration files"
19
+ say "from /etc ; Backups of the existing config files will be created!"
20
+ say ""
21
+ say "FILES TO BE WRITTEN:"
22
+ say ""
23
+ say " - %s" % File.expand_path("exim4.conf", Smailr.config["exim_path"])
24
+ say " - %s" % File.expand_path("dovecot.conf", Smailr.config["dovecot_path"])
25
+ say " - %s" % File.expand_path("dovecot-sql.conf", Smailr.config["dovecot_path"])
26
+ say ""
27
+ if agree "Continue? [yes/no]"
10
28
  defaults_file = "/etc/smailr.yml"
11
29
  else
12
30
  exit
@@ -89,7 +107,10 @@ module Smailr
89
107
  end
90
108
 
91
109
  def self.setup_mail_spool
92
- exec "useradd -r -d #{Smailr.config["mail_spool_path"]} vmail"
110
+ unless Etc.getpwnam("vmail")
111
+ exec "useradd -r -d #{Smailr.config["mail_spool_path"]} vmail"
112
+ end
113
+
93
114
  FileUtils.mkdir_p "#{Smailr.config["mail_spool_path"]}/users"
94
115
  FileUtils.chown "vmail", "vmail", Smailr.config["mail_spool_path"]
95
116
  end
data/lib/smailr.rb CHANGED
@@ -6,7 +6,7 @@ require 'commander/import'
6
6
  require 'fileutils'
7
7
 
8
8
  module Smailr
9
- VERSION = '0.5.3'
9
+ VERSION = '0.5.4'
10
10
 
11
11
  autoload :Model, 'smailr/model'
12
12
  autoload :Domain, 'smailr/domain'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smailr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 3
10
- version: 0.5.3
9
+ - 4
10
+ version: 0.5.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stefan Schlesinger
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-04-26 00:00:00 Z
18
+ date: 2012-12-10 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: commander
@@ -32,7 +32,7 @@ dependencies:
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
34
  - !ruby/object:Gem::Dependency
35
- name: sqlite3
35
+ name: sequel
36
36
  prerelease: false
37
37
  requirement: &id002 !ruby/object:Gem::Requirement
38
38
  none: false
@@ -45,20 +45,6 @@ dependencies:
45
45
  version: "0"
46
46
  type: :runtime
47
47
  version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: sequel
50
- prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
60
- type: :runtime
61
- version_requirements: *id003
62
48
  description: |-
63
49
  Smailr is a CLI tool which lets you manage your Exim/Dovecot setup
64
50
  from the shell. It currently uses SQLite as a backend.
@@ -81,8 +67,6 @@ files:
81
67
  - contrib/dovecot-sql.conf
82
68
  - contrib/dovecot.conf
83
69
  - contrib/exim4.conf
84
- - contrib/exim4.spam.conf
85
- - contrib/install.pp
86
70
  - migrations/001_domains.rb
87
71
  - migrations/002_mailboxes.rb
88
72
  - migrations/003_aliases.rb
@@ -97,15 +81,19 @@ post_install_message: |+
97
81
 
98
82
  SMAILR /////////////////////////////////////////////////////////////////
99
83
 
100
- TO FINISH THE LOCAL SMAILR INSTALLATION RUN:
101
-
102
- * 'smailr setup' once, to create /etc/smailr.yml
84
+ TO FINISH THE LOCAL SMAILR INSTALLATION:
85
+
86
+ * Install Exim with SQLite support
87
+
88
+ * Install Dovecot with SQlite support
103
89
 
104
- * Review the configuration file please
90
+ * run export PATH="/var/lib/gems/1.8/bin:${PATH}"
105
91
 
106
- * 'smailr stetup' again, to initialize all configurations
92
+ * run "smailr setup" to create exim, dovecot and smailr configuration (you
93
+ can edit the configuration in an editor window before everyting is
94
+ initialized)
107
95
 
108
- * 'smailr migrate' to initialize the database
96
+ * run "smailr migrate" to initialize the database file
109
97
 
110
98
  //////////////////////////////////////////////////////////////// ///////
111
99
 
@@ -136,7 +124,7 @@ requirements:
136
124
  - Dovecot
137
125
  - Debian
138
126
  rubyforge_project:
139
- rubygems_version: 1.8.21
127
+ rubygems_version: 1.8.24
140
128
  signing_key:
141
129
  specification_version: 3
142
130
  summary: Simple MAIL manageR - Virtual mail hosting management from the CLI
@@ -1,281 +0,0 @@
1
- #############################################################################
2
- # Exim Transactional Mailerver Configuration
3
-
4
- EXIM_CONF = /etc/exim4
5
-
6
- SQLITE_DATABASE_FILE = EXIM_CONF/smailr.sqlite
7
-
8
- DKIM_DOMAIN = ${lc:${domain:$h_from:}}
9
-
10
- DKIM_SELECTOR = mx
11
-
12
- #############################################################################
13
- # Database Queries
14
-
15
- VIRTUAL_DOMAINS_SQL = SELECT DISTINCT fqdn FROM domains WHERE fqdn = '${quote_sqlite:$domain}'
16
- VIRTUAL_DOMAINS = ${lookup sqlite{SQLITE_DATABASE_FILE VIRTUAL_DOMAINS_SQL}}
17
-
18
- R_VIRTUAL_ALIASES_DATA_SQL = \
19
- SELECT aliases.dstlocalpart || '@' || aliases.dstdomain \
20
- FROM aliases, domains \
21
- WHERE aliases.localpart = '${quote_sqlite:$local_part}' \
22
- AND domains.fqdn = '${quote_sqlite:$domain}' \
23
- AND aliases.domain_id = domains.id
24
-
25
- R_VIRTUAL_ALIASES_DATA = ${lookup sqlite {SQLITE_DATABASE_FILE R_VIRTUAL_ALIASES_DATA_SQL}{$value}fail}
26
-
27
- R_VIRTUAL_MAILBOX_CONDITION_SQL = \
28
- SELECT '/srv/mail/users/' || domains.fqdn || '/' || mailboxes.localpart \
29
- FROM mailboxes, domains \
30
- WHERE mailboxes.localpart = '${quote_sqlite:$local_part}' \
31
- AND domains.fqdn = '${quote_sqlite:$domain}' \
32
- AND mailboxes.domain_id = domains.id
33
-
34
- R_VIRTUAL_MAILBOX_CONDITION = ${lookup sqlite{SQLITE_DATABASE_FILE R_VIRTUAL_MAILBOX_CONDITION_SQL}}
35
-
36
- DKIM_PRIVATE_KEY_SQL = \
37
- SELECT private_key \
38
- FROM dkims, domains \
39
- WHERE dkims.selector = 'mx' \
40
- AND domains.fqdn = '${quote_sqlite:DKIM_DOMAIN}' \
41
- AND dkims.domain_id = domains.id
42
-
43
- DKIM_PRIVATE_KEY = ${lookup sqlite{SQLITE_DATABASE_FILE DKIM_PRIVATE_KEY_SQL}{$value}fail}
44
-
45
- ################################################################################
46
- # Domain Lists
47
-
48
- domainlist local_domains = @ : VIRTUAL_DOMAINS
49
-
50
- domainlist relay_to_domains =
51
-
52
- hostlist relay_from_hosts =
53
-
54
- #############################################################################
55
- # Main Settings
56
-
57
- smtp_banner = $primary_hostname NO UCE/NO UBE ESMTP MTA
58
-
59
- exim_user = Debian-exim
60
- exim_group = Debian-exim
61
- never_users = root
62
-
63
- daemon_smtp_ports = 25 : 465 : 587
64
-
65
- tls_certificate = /etc/exim4/exim.crt
66
- tls_privatekey = /etc/exim4/exim.key
67
- tls_advertise_hosts = *
68
-
69
- split_spool_directory = true
70
-
71
- smtp_return_error_details = true
72
-
73
- log_selector = +subject \
74
- +address_rewrite \
75
- +connection_reject \
76
- +delay_delivery \
77
- +delivery_size \
78
- +dnslist_defer \
79
- +lost_incoming_connection \
80
- +queue_run \
81
- +received_recipients \
82
- +sender_on_delivery \
83
- +size_reject \
84
- +smtp_confirmation \
85
- +smtp_protocol_error \
86
- +smtp_syntax_error \
87
- +tls_cipher \
88
- +tls_peerdn
89
-
90
- # Maximum message size
91
- message_size_limit = 20M
92
-
93
- # Number of unknown SMTP commands we accept before dropping the connection
94
- smtp_max_unknown_commands = 10
95
-
96
- bounce_return_size_limit = 10K
97
-
98
- # These protections need to take into account MailScanners need to do
99
- # MIME explosion.
100
- check_spool_inodes = 1000
101
- check_spool_space = 100M
102
-
103
- # do a reverse DNS lookup on every connection
104
- host_lookup = *
105
-
106
- # No RFC 1413 (ident)-lookups
107
- rfc1413_hosts = !*
108
-
109
- # Make ESMTP PIPELINING available in all cases
110
- pipelining_advertise_hosts = *
111
-
112
- # A bit of good cop / bad cop with helo
113
- helo_allow_chars = "_"
114
- helo_verify_hosts = !*
115
- helo_try_verify_hosts = !*
116
-
117
- # Reverse DNS information is useful
118
- helo_lookup_domains = *
119
-
120
- # Send a notification about forzen messages at these intervals
121
- delay_warning = 1h:2h:8h:24h:48h:72h
122
-
123
- # Don't send a notification for messages with Precedence:bulk|list|junk
124
- delay_warning_condition = "${if match{$h_precedence:}{(?i)bulk|list|junk}{no}{yes}}"
125
-
126
- # Accept 8-bit MIME in Helo and Body.
127
- accept_8bitmime
128
-
129
- # Allow to manually specify a envelope-from when submitting local mail
130
- local_from_check = false
131
- local_sender_retain = true
132
- untrusted_set_sender = *
133
-
134
- # Clamav socket
135
- av_scanner = clamd:/var/run/clamav/clamd.ctl
136
-
137
-
138
- #############################################################################
139
- # ACL Configuration
140
-
141
- # We use the following ACLs:
142
- acl_smtp_connect = accept
143
- acl_smtp_helo = accept
144
- acl_smtp_starttls = accept
145
- acl_smtp_mail = accept
146
- acl_smtp_rcpt = acl_check_rcpt
147
- acl_smtp_data = acl_check_data
148
-
149
- # We dont allow VRFY/EXPN
150
- acl_smtp_vrfy = deny
151
- acl_smtp_expn = deny
152
-
153
- begin acl
154
-
155
- acl_check_rcpt:
156
- # Accept if source is local SMTP (not over TCP). We do this by testing
157
- # for an empty sending host field.
158
- accept hosts = :
159
-
160
- # Accept everything from localhost
161
- accept hosts = 127.0.0.1/8 : ::::1
162
-
163
- # Deny if the local part contains @ or % or / or | or !. These are rarely
164
- # found in genuine local parts, but are often tried by people looking to
165
- # circumvent relaying restrictions.
166
- deny local_parts = ^.*[@%!/|] : ^\\.
167
-
168
- # Accept authenticated messages.
169
- accept authenticated = *
170
-
171
- # Deny relaying on port 587 if not authenticated.
172
- deny !authenticated = *
173
- condition = ${if eq {$interface_port}{587} {yes}{no}}
174
- message = Relaying denied. Proper authentication required on port 587.
175
-
176
- # Teergrube any borken reverse DNS entries.
177
- warn message = X-Broken-Reverse-DNS: no host name for IP address $sender_host_address
178
- !verify = reverse_host_lookup
179
- delay = TEERGRUBE
180
-
181
- # Accept if the address is in a local domain, but only if the recipient can
182
- # be verified. Otherwise deny. The "endpass" line is the border between
183
- # passing on to the next ACL statement (if tests above it fail) or denying
184
- # access (if tests below it fail).
185
- accept domains = +local_domains
186
- endpass
187
- verify = recipient
188
-
189
- # Accept if the address is in a domain for which we are relaying, but again,
190
- # only if the recipient can be verified (this saves your secondary
191
- # MXes from accepting mail that they then can't send to your primary
192
- # MX)
193
- accept domains = +relay_to_domains
194
- endpass
195
- message = unrouteable address
196
- verify = recipient/callout=30s/callout_defer_ok
197
-
198
- accept hosts = +relay_from_hosts
199
-
200
- # Reaching the end of the ACL causes a "deny".
201
- deny message = <$local_part@$domain>: Relaying denied. Proper authentication required.
202
- delay = TEERGRUBE
203
-
204
-
205
- acl_check_data:
206
-
207
- # Accept if source is local SMTP (i.e. not over TCP/IP). We do this by
208
- # testing for an empty sending host field.
209
- accept hosts = :
210
-
211
- # Run clamav against the message and reject if it contains malware. This
212
- # acl condition will not deny if there is a problem with clamav.
213
- deny message = This message contains malware ($malware_name)
214
- malware = */defer_ok
215
-
216
- accept
217
-
218
-
219
-
220
- #############################################################################
221
- # Router Configuration
222
-
223
- begin routers
224
-
225
- # Aliases for local mailboxes
226
- virtual_alias:
227
- debug_print = "R: virtual_alias for $local_part@$domain"
228
- driver = redirect
229
- domains = +local_domains
230
- allow_fail
231
- allow_defer
232
- # Lookup the mailbox which we route the message to
233
- data = R_VIRTUAL_ALIASES_DATA
234
-
235
- virtual_mailbox:
236
- debug_print = "R: virtual_mailbox for $local_part@$domain"
237
- driver = accept
238
- domains = +local_domains
239
- transport = dovecot_virtual_delivery
240
- condition = R_VIRTUAL_MAILBOX_CONDITION
241
-
242
- # This router routes to remote hosts over SMTP using a DNS lookup with
243
- # default options.
244
- dnslookup:
245
- debug_print = "R: dnslookup for $local_part@$domain"
246
- driver = dnslookup
247
- domains = ! +local_domains
248
- ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
249
- cannot_route_message = Unkown user $local_part in domain $domain
250
- # Optimization since the dnslookup router is independent of the local part
251
- same_domain_copy_routing = yes
252
- transport = remote_smtp
253
- no_more
254
-
255
-
256
-
257
- #############################################################################
258
- # Transport Configuration
259
-
260
- begin transports
261
-
262
- remote_smtp:
263
- debug_print = "T: remote_smtp for $local_part@$domain"
264
- driver = smtp
265
- interface = "${lookup {${randint:5}} lsearch {/etc/exim4/source_ip_lookup}}"
266
-
267
- #############################################################################
268
- # Rewrites/Retries/Authenticatos
269
-
270
- begin rewrite
271
-
272
- begin retry
273
-
274
- # Retry.. every 10 mins for 2 hours
275
- # Then.. every hour for 24 hours
276
- # Finaly.. every 6 hours for 4 days
277
-
278
- # Domain Error Retry.. Then.. Finaly..
279
- * * F,2h,10m; F,24h,1h; F,4d,6h
280
-
281
- begin authenticators
data/contrib/install.pp DELETED
@@ -1,95 +0,0 @@
1
- class smailr::mx
2
- {
3
- include smailr::params
4
- include smailr::mx::common
5
- include smailr::mx::exim
6
- include smailr::mx::dovecot
7
- }
8
-
9
- class smailr::params
10
- {
11
- $smailr_version = "0.5.0"
12
-
13
- $smailr_mailstorage = "/srv/mail"
14
-
15
- $smailr_contrib = $lsbdistcodename ? {
16
- "Debian": "/var/lib/ruby/gems/smailr-${version}/contrib",
17
- }
18
-
19
- $exim_package_name = $lsbdistid ? {
20
- "Debian": "exim4-daemon-heavy"
21
- }
22
- }
23
-
24
- class smailr::mx::common
25
- {
26
- user { "vmail":
27
- ensure => present,
28
- }
29
-
30
- group { "vmail":
31
- ensure => present,
32
- }
33
-
34
- file {
35
- $smailr_mailstorage:
36
- ensure => direcotry,
37
- owner => "vmail",
38
- group => "vmail",
39
- mode => 0660,
40
- require => User["vmail"];
41
-
42
- "${smailr_mailstorage}/users":
43
- ensure => directory,
44
- owner => "vmail",
45
- group => "vmail",
46
- mode => "0660",
47
- require => File["/srv/mail"];
48
- }
49
-
50
- }
51
-
52
- class smailr::mx::exim
53
- {
54
- package { "exim4-daemon-heavy":
55
- name => $smailr::params::exim_package_name
56
- ensure => present,
57
- }
58
-
59
- file {
60
- "/etc/exim4/exim4.conf":
61
- ensure => present,
62
- source => "file:///${smailr_contrib}/exim4.conf"
63
- require => Package["exim4-daemon-heavy"];
64
-
65
- "/etc/default/exim4":
66
- ensure => present,
67
- owner => "root",
68
- group => "root",
69
- source => "file:///${smailr_contrib}/exim4.defaults",
70
- require => Package["exim4-daemon-heavy"];
71
- }
72
- }
73
-
74
- class smailr::mx::dovecot
75
- {
76
- package { "dovecot-imapd":
77
- ensure => present,
78
- }
79
-
80
- package { "dovecot-pop3d":
81
- ensure => present,
82
- }
83
-
84
- file {
85
- "/etc/dovecot/dovecot.conf":
86
- ensure => present,
87
- source => "file:///${smailr_contrib}/dovecot.conf"
88
- require => Package["dovecot-imapd"];
89
-
90
- "/etc/dovecot/dovecot.conf":
91
- ensure => present,
92
- source => "file:///${smailr_contrib}/dovecot-sql.conf"
93
- require => Package["dovecot-imapd"];
94
- }
95
- }