smailr 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
- }