rmails 0.1.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.
Files changed (332) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/Gemfile +24 -0
  4. data/Gemfile.lock +167 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.markdown +9 -0
  7. data/Rakefile +31 -0
  8. data/Rakefile1 +9 -0
  9. data/Vagrantfile +51 -0
  10. data/app/assets/images/arrow_bottom.gif +0 -0
  11. data/app/assets/images/arrow_right.gif +0 -0
  12. data/app/assets/images/at-sign.png +0 -0
  13. data/app/assets/images/checkerboard.gif +0 -0
  14. data/app/assets/images/glyphicons-halflings-white.png +0 -0
  15. data/app/assets/images/glyphicons-halflings.png +0 -0
  16. data/app/assets/images/icon_draft.gif +0 -0
  17. data/app/assets/images/icon_layout.gif +0 -0
  18. data/app/assets/images/icon_move.gif +0 -0
  19. data/app/assets/images/icon_regular.gif +0 -0
  20. data/app/assets/images/icon_snippet.gif +0 -0
  21. data/app/assets/images/nav_arrow.png +0 -0
  22. data/app/assets/images/x.png +0 -0
  23. data/app/assets/javascripts/application.coffee.erb +27 -0
  24. data/app/assets/javascripts/canjs/can.construct.proxy.js +60 -0
  25. data/app/assets/javascripts/canjs/can.construct.super.js +44 -0
  26. data/app/assets/javascripts/canjs/can.control.plugin.js +245 -0
  27. data/app/assets/javascripts/canjs/can.control.view.js +88 -0
  28. data/app/assets/javascripts/canjs/can.dojo.js +3669 -0
  29. data/app/assets/javascripts/canjs/can.dojo.min.js +66 -0
  30. data/app/assets/javascripts/canjs/can.fixture.js +1020 -0
  31. data/app/assets/javascripts/canjs/can.jquery.js +2995 -0
  32. data/app/assets/javascripts/canjs/can.jquery.min.js +52 -0
  33. data/app/assets/javascripts/canjs/can.mootools.js +3462 -0
  34. data/app/assets/javascripts/canjs/can.mootools.min.js +63 -0
  35. data/app/assets/javascripts/canjs/can.observe.attributes.js +293 -0
  36. data/app/assets/javascripts/canjs/can.observe.backup.js +368 -0
  37. data/app/assets/javascripts/canjs/can.observe.delegate.js +359 -0
  38. data/app/assets/javascripts/canjs/can.observe.setter.js +58 -0
  39. data/app/assets/javascripts/canjs/can.observe.validations.js +374 -0
  40. data/app/assets/javascripts/canjs/can.view.modifiers.js +292 -0
  41. data/app/assets/javascripts/canjs/can.yui.js +3530 -0
  42. data/app/assets/javascripts/canjs/can.yui.min.js +65 -0
  43. data/app/assets/javascripts/canjs/can.zepto.js +3426 -0
  44. data/app/assets/javascripts/canjs/can.zepto.min.js +62 -0
  45. data/app/assets/javascripts/controls/admins.coffee.erb +105 -0
  46. data/app/assets/javascripts/controls/aliases.coffee.erb +91 -0
  47. data/app/assets/javascripts/controls/domains.coffee.erb +115 -0
  48. data/app/assets/javascripts/controls/settings.coffee.erb +47 -0
  49. data/app/assets/javascripts/controls/users.coffee.erb +94 -0
  50. data/app/assets/javascripts/lib/facebox.js +311 -0
  51. data/app/assets/javascripts/lib/html5.js +2 -0
  52. data/app/assets/javascripts/lib/jquery.js +9301 -0
  53. data/app/assets/javascripts/lib/jquery_formparams.js +108 -0
  54. data/app/assets/javascripts/lib/jquery_input_hint.js +20 -0
  55. data/app/assets/javascripts/lib/jquery_paginate.js +120 -0
  56. data/app/assets/javascripts/lib/jquery_ui_custom.js +6 -0
  57. data/app/assets/javascripts/lib/json2.js +487 -0
  58. data/app/assets/javascripts/lib/utils.coffee.erb +48 -0
  59. data/app/assets/javascripts/models/admin.coffee.erb +42 -0
  60. data/app/assets/javascripts/models/alias.coffee.erb +28 -0
  61. data/app/assets/javascripts/models/domain.coffee.erb +39 -0
  62. data/app/assets/javascripts/models/property.coffee.erb +18 -0
  63. data/app/assets/javascripts/models/user.coffee.erb +29 -0
  64. data/app/assets/stylesheets/application.sass +156 -0
  65. data/app/assets/stylesheets/base.css.sass +243 -0
  66. data/app/assets/stylesheets/facebox.css +80 -0
  67. data/app/assets/stylesheets/lib/bootstrap.css +9 -0
  68. data/app/assets/stylesheets/twitter/bootstrap-responsive.scss +1 -0
  69. data/app/assets/stylesheets/twitter/bootstrap.scss +63 -0
  70. data/app/assets/stylesheets/twitter/bootstrap/_accordion.scss +34 -0
  71. data/app/assets/stylesheets/twitter/bootstrap/_alerts.scss +79 -0
  72. data/app/assets/stylesheets/twitter/bootstrap/_breadcrumbs.scss +24 -0
  73. data/app/assets/stylesheets/twitter/bootstrap/_button-groups.scss +229 -0
  74. data/app/assets/stylesheets/twitter/bootstrap/_buttons.scss +228 -0
  75. data/app/assets/stylesheets/twitter/bootstrap/_carousel.scss +158 -0
  76. data/app/assets/stylesheets/twitter/bootstrap/_close.scss +32 -0
  77. data/app/assets/stylesheets/twitter/bootstrap/_code.scss +61 -0
  78. data/app/assets/stylesheets/twitter/bootstrap/_component-animations.scss +22 -0
  79. data/app/assets/stylesheets/twitter/bootstrap/_dropdowns.scss +237 -0
  80. data/app/assets/stylesheets/twitter/bootstrap/_forms.scss +689 -0
  81. data/app/assets/stylesheets/twitter/bootstrap/_grid.scss +21 -0
  82. data/app/assets/stylesheets/twitter/bootstrap/_hero-unit.scss +25 -0
  83. data/app/assets/stylesheets/twitter/bootstrap/_labels-badges.scss +83 -0
  84. data/app/assets/stylesheets/twitter/bootstrap/_layouts.scss +16 -0
  85. data/app/assets/stylesheets/twitter/bootstrap/_media.scss +55 -0
  86. data/app/assets/stylesheets/twitter/bootstrap/_mixins.scss +690 -0
  87. data/app/assets/stylesheets/twitter/bootstrap/_modals.scss +95 -0
  88. data/app/assets/stylesheets/twitter/bootstrap/_navbar.scss +497 -0
  89. data/app/assets/stylesheets/twitter/bootstrap/_navs.scss +409 -0
  90. data/app/assets/stylesheets/twitter/bootstrap/_pager.scss +43 -0
  91. data/app/assets/stylesheets/twitter/bootstrap/_pagination.scss +123 -0
  92. data/app/assets/stylesheets/twitter/bootstrap/_popovers.scss +133 -0
  93. data/app/assets/stylesheets/twitter/bootstrap/_progress-bars.scss +122 -0
  94. data/app/assets/stylesheets/twitter/bootstrap/_reset.scss +216 -0
  95. data/app/assets/stylesheets/twitter/bootstrap/_responsive-1200px-min.scss +28 -0
  96. data/app/assets/stylesheets/twitter/bootstrap/_responsive-767px-max.scss +193 -0
  97. data/app/assets/stylesheets/twitter/bootstrap/_responsive-768px-979px.scss +19 -0
  98. data/app/assets/stylesheets/twitter/bootstrap/_responsive-navbar.scss +189 -0
  99. data/app/assets/stylesheets/twitter/bootstrap/_responsive-utilities.scss +74 -0
  100. data/app/assets/stylesheets/twitter/bootstrap/_scaffolding.scss +53 -0
  101. data/app/assets/stylesheets/twitter/bootstrap/_sprites.scss +197 -0
  102. data/app/assets/stylesheets/twitter/bootstrap/_tables.scss +235 -0
  103. data/app/assets/stylesheets/twitter/bootstrap/_thumbnails.scss +53 -0
  104. data/app/assets/stylesheets/twitter/bootstrap/_tooltip.scss +70 -0
  105. data/app/assets/stylesheets/twitter/bootstrap/_type.scss +247 -0
  106. data/app/assets/stylesheets/twitter/bootstrap/_utilities.scss +45 -0
  107. data/app/assets/stylesheets/twitter/bootstrap/_variables.scss +301 -0
  108. data/app/assets/stylesheets/twitter/bootstrap/_wells.scss +29 -0
  109. data/app/assets/stylesheets/twitter/bootstrap/responsive.scss +48 -0
  110. data/app/controllers/admin_users_controller.rb +62 -0
  111. data/app/controllers/aliases_controller.rb +35 -0
  112. data/app/controllers/application_controller.rb +20 -0
  113. data/app/controllers/domains_controller.rb +48 -0
  114. data/app/controllers/server_controller.rb +28 -0
  115. data/app/controllers/users_controller.rb +35 -0
  116. data/app/helpers/admin_users_helper.rb +11 -0
  117. data/app/helpers/application_helper.rb +2 -0
  118. data/app/helpers/domains_helper.rb +25 -0
  119. data/app/helpers/server_helper.rb +30 -0
  120. data/app/mailers/.gitkeep +0 -0
  121. data/app/models/.gitkeep +0 -0
  122. data/app/models/admin_user.rb +54 -0
  123. data/app/models/certificate_manager.rb +46 -0
  124. data/app/models/property.rb +103 -0
  125. data/app/models/property/awstats.rb +15 -0
  126. data/app/models/property/dovecot.rb +61 -0
  127. data/app/models/property/dspam.rb +45 -0
  128. data/app/models/property/nginx.rb +47 -0
  129. data/app/models/property/postfix.rb +64 -0
  130. data/app/models/property_value_validator.rb +41 -0
  131. data/app/models/system_manager.rb +88 -0
  132. data/app/models/virtual_alias.rb +13 -0
  133. data/app/models/virtual_domain.rb +15 -0
  134. data/app/models/virtual_user.rb +51 -0
  135. data/app/views/admin_users/_form.html.haml +21 -0
  136. data/app/views/admin_users/first.html.haml +12 -0
  137. data/app/views/admin_users/index.html.haml +61 -0
  138. data/app/views/aliases/_form.html.haml +11 -0
  139. data/app/views/aliases/_list.html.haml +0 -0
  140. data/app/views/devise/confirmations/new.html.haml +9 -0
  141. data/app/views/devise/mailer/confirmation_instructions.html.haml +4 -0
  142. data/app/views/devise/mailer/reset_password_instructions.html.haml +6 -0
  143. data/app/views/devise/mailer/unlock_instructions.html.haml +5 -0
  144. data/app/views/devise/passwords/edit.html.haml +14 -0
  145. data/app/views/devise/passwords/new.html.haml +12 -0
  146. data/app/views/devise/registrations/edit.html.haml +18 -0
  147. data/app/views/devise/registrations/new.html.haml +10 -0
  148. data/app/views/devise/sessions/new.html.haml +16 -0
  149. data/app/views/devise/shared/_links.haml +17 -0
  150. data/app/views/devise/unlocks/new.html.haml +11 -0
  151. data/app/views/domains/_fields.html.haml +0 -0
  152. data/app/views/domains/_form.html.haml +7 -0
  153. data/app/views/domains/index.html.haml +133 -0
  154. data/app/views/domains/show.html.haml +1 -0
  155. data/app/views/layouts/_nav.html.haml +3 -0
  156. data/app/views/layouts/application.html.haml +29 -0
  157. data/app/views/server/_certificates.html.haml +10 -0
  158. data/app/views/server/_dovecot.html.haml +27 -0
  159. data/app/views/server/_dspam.html.haml +9 -0
  160. data/app/views/server/_postfix_info.html.haml +5 -0
  161. data/app/views/server/_postfix_test.html.haml +5 -0
  162. data/app/views/server/_status.html.haml +11 -0
  163. data/app/views/server/index.html.haml +36 -0
  164. data/app/views/users/_form.html.haml +11 -0
  165. data/app/views/users/_list.html.haml +0 -0
  166. data/bin/rmails +43 -0
  167. data/config.ru +4 -0
  168. data/config/application.rb +62 -0
  169. data/config/boot.rb +6 -0
  170. data/config/environment.rb +5 -0
  171. data/config/environments/development.rb +37 -0
  172. data/config/environments/production.rb +67 -0
  173. data/config/environments/test.rb +37 -0
  174. data/config/initializers/backtrace_silencers.rb +7 -0
  175. data/config/initializers/devise.rb +240 -0
  176. data/config/initializers/devise_encryptable.rb +37 -0
  177. data/config/initializers/devise_models.rb +86 -0
  178. data/config/initializers/inflections.rb +15 -0
  179. data/config/initializers/mime_types.rb +5 -0
  180. data/config/initializers/secret_token.rb +7 -0
  181. data/config/initializers/session_store.rb +8 -0
  182. data/config/initializers/simple_form.rb +142 -0
  183. data/config/initializers/simple_form_bootstrap.rb +45 -0
  184. data/config/initializers/wrap_parameters.rb +14 -0
  185. data/config/locales/cz.yml +45 -0
  186. data/config/locales/devise.cz.yml +47 -0
  187. data/config/locales/devise.en.yml +60 -0
  188. data/config/locales/en.yml +5 -0
  189. data/config/locales/server/cz.yml +14 -0
  190. data/config/locales/server/en.yml +7 -0
  191. data/config/locales/server/help/dovecot/cz.yml +21 -0
  192. data/config/locales/server/help/dovecot/en.yml +18 -0
  193. data/config/locales/server/help/dspam/cz.yml +10 -0
  194. data/config/locales/server/help/dspam/en.yml +4 -0
  195. data/config/locales/server/key/dovecot/cz.yml +23 -0
  196. data/config/locales/server/key/dovecot/en.yml +20 -0
  197. data/config/locales/server/key/dspam/cz.yml +10 -0
  198. data/config/locales/server/key/dspam/en.yml +4 -0
  199. data/config/locales/simple_form.en.yml +26 -0
  200. data/config/locales/views/admin_users/cz.yml +25 -0
  201. data/config/locales/views/admin_users/en.yml +5 -0
  202. data/config/locales/views/aliases/cz.yml +17 -0
  203. data/config/locales/views/aliases/en.yml +1 -0
  204. data/config/locales/views/devise/cz.yml +26 -0
  205. data/config/locales/views/devise/en.yml +13 -0
  206. data/config/locales/views/domains/cz.yml +15 -0
  207. data/config/locales/views/domains/en.yml +15 -0
  208. data/config/locales/views/server/cz.yml +19 -0
  209. data/config/locales/views/server/en.yml +3 -0
  210. data/config/locales/views/users/cz.yml +18 -0
  211. data/config/locales/views/users/en.yml +1 -0
  212. data/config/routes.rb +80 -0
  213. data/db/migrate/20121112201233_virtual_domain.rb +11 -0
  214. data/db/migrate/20121112201247_virtual_alias.rb +10 -0
  215. data/db/migrate/20121112201341_virtual_user.rb +34 -0
  216. data/db/migrate/20121112201359_create_admin_user.rb +30 -0
  217. data/db/migrate/20121112201411_server_configuration.rb +13 -0
  218. data/db/migrate/20130304083938_join_domains_users.rb +12 -0
  219. data/db/migrate/20130311214040_create_versions.rb +18 -0
  220. data/db/seeds.rb +45 -0
  221. data/lib/devise-encryptable.rb +1 -0
  222. data/lib/rmails.rb +5 -0
  223. data/lib/rmails/installer.rb +37 -0
  224. data/lib/rmails/version.rb +3 -0
  225. data/lib/tasks/.gitkeep +0 -0
  226. data/lib/templates/haml/scaffold/_form.html.haml +10 -0
  227. data/locals +0 -0
  228. data/log/.gitkeep +0 -0
  229. data/public/404.html +26 -0
  230. data/public/422.html +26 -0
  231. data/public/500.html +25 -0
  232. data/public/favicon.ico +0 -0
  233. data/public/fonts/London.eot +0 -0
  234. data/public/fonts/London.otf +0 -0
  235. data/public/fonts/London.woff +0 -0
  236. data/public/fonts/LondonBold.otf +0 -0
  237. data/public/robots.txt +5 -0
  238. data/rmails.gemspec +35 -0
  239. data/script/prepflog.pl +576 -0
  240. data/script/rails +6 -0
  241. data/system/config/automateit_env.rb +16 -0
  242. data/system/config/fields.yml +48 -0
  243. data/system/config/tags.yml +39 -0
  244. data/system/dist/README_AutomateIt_dist.txt +20 -0
  245. data/system/dist/amavis/spamassassin.cf.erb +85 -0
  246. data/system/dist/amavis/user.erb +33 -0
  247. data/system/dist/awstats/awstats.mail.conf.erb +41 -0
  248. data/system/dist/awstats/prepflog.pl +576 -0
  249. data/system/dist/dovecot/dovecot-sql.conf.ext.erb +14 -0
  250. data/system/dist/dovecot/dovecot.conf.erb +297 -0
  251. data/system/dist/dovecot/old_dovecot.conf.erb +63 -0
  252. data/system/dist/dspam/conf.erb +96 -0
  253. data/system/dist/dspam/pgsql.conf +33 -0
  254. data/system/dist/nginx/awstats.erb +17 -0
  255. data/system/dist/nginx/rmails.erb +40 -0
  256. data/system/dist/postfix/email2email.cf.erb +5 -0
  257. data/system/dist/postfix/main.cf.erb +118 -0
  258. data/system/dist/postfix/master.cf.erb +74 -0
  259. data/system/dist/postfix/sasl.conf.erb +3 -0
  260. data/system/dist/postfix/sender_login_maps.cf.erb +5 -0
  261. data/system/dist/postfix/virtual_alias_maps.cf.erb +5 -0
  262. data/system/dist/postfix/virtual_mailbox_domains.cf.erb +5 -0
  263. data/system/dist/postfix/virtual_mailbox_maps.cf.erb +5 -0
  264. data/system/dist/postgresql/postgresql.conf.erb +54 -0
  265. data/system/dist/rmails/Gemfile.1 +8 -0
  266. data/system/dist/rmails/Gemfile.2 +24 -0
  267. data/system/dist/rmails/database.yml.erb +15 -0
  268. data/system/dist/sudoers +37 -0
  269. data/system/lib/README_AutomateIt_lib.txt +22 -0
  270. data/system/lib/dkim_key.rb +9 -0
  271. data/system/lib/smtpd_key.rb +39 -0
  272. data/system/lib/ssl.rb +23 -0
  273. data/system/recipes/01_prepare_server.rb +84 -0
  274. data/system/recipes/02_setup_database.rb +65 -0
  275. data/system/recipes/03_setup_postfix.rb +124 -0
  276. data/system/recipes/04_setup_dovecot.rb +78 -0
  277. data/system/recipes/05_setup_nginx.rb +29 -0
  278. data/system/recipes/06_setup_dspam.rb +24 -0
  279. data/system/recipes/07_setup_amavis.rb +16 -0
  280. data/system/recipes/08_setup_spamassassin.rb +22 -0
  281. data/system/recipes/09_setup_awstats.rb +49 -0
  282. data/system/recipes/XX_start_services.rb +5 -0
  283. data/test/fixtures/.gitkeep +0 -0
  284. data/test/functional/.gitkeep +0 -0
  285. data/test/functional/aliases_controller_test.rb +7 -0
  286. data/test/functional/domains_controller_test.rb +7 -0
  287. data/test/functional/users_controller_test.rb +7 -0
  288. data/test/integration/.gitkeep +0 -0
  289. data/test/performance/browsing_test.rb +12 -0
  290. data/test/test_helper.rb +13 -0
  291. data/test/unit/.gitkeep +0 -0
  292. data/test/unit/helpers/aliases_helper_test.rb +4 -0
  293. data/test/unit/helpers/domains_helper_test.rb +4 -0
  294. data/test/unit/helpers/users_helper_test.rb +4 -0
  295. data/vendor/assets/javascripts/.gitkeep +0 -0
  296. data/vendor/assets/javascripts/canjs/can.construct.proxy.js +60 -0
  297. data/vendor/assets/javascripts/canjs/can.construct.super.js +44 -0
  298. data/vendor/assets/javascripts/canjs/can.control.plugin.js +245 -0
  299. data/vendor/assets/javascripts/canjs/can.control.view.js +88 -0
  300. data/vendor/assets/javascripts/canjs/can.dojo.js +3669 -0
  301. data/vendor/assets/javascripts/canjs/can.dojo.min.js +66 -0
  302. data/vendor/assets/javascripts/canjs/can.fixture.js +1020 -0
  303. data/vendor/assets/javascripts/canjs/can.jquery.js +2995 -0
  304. data/vendor/assets/javascripts/canjs/can.jquery.min.js +52 -0
  305. data/vendor/assets/javascripts/canjs/can.mootools.js +3462 -0
  306. data/vendor/assets/javascripts/canjs/can.mootools.min.js +63 -0
  307. data/vendor/assets/javascripts/canjs/can.observe.attributes.js +293 -0
  308. data/vendor/assets/javascripts/canjs/can.observe.backup.js +368 -0
  309. data/vendor/assets/javascripts/canjs/can.observe.delegate.js +359 -0
  310. data/vendor/assets/javascripts/canjs/can.observe.setter.js +58 -0
  311. data/vendor/assets/javascripts/canjs/can.observe.validations.js +374 -0
  312. data/vendor/assets/javascripts/canjs/can.view.modifiers.js +292 -0
  313. data/vendor/assets/javascripts/canjs/can.yui.js +3530 -0
  314. data/vendor/assets/javascripts/canjs/can.yui.min.js +65 -0
  315. data/vendor/assets/javascripts/canjs/can.zepto.js +3426 -0
  316. data/vendor/assets/javascripts/canjs/can.zepto.min.js +62 -0
  317. data/vendor/assets/javascripts/twitter/bootstrap-affix.js +104 -0
  318. data/vendor/assets/javascripts/twitter/bootstrap-alert.js +90 -0
  319. data/vendor/assets/javascripts/twitter/bootstrap-button.js +96 -0
  320. data/vendor/assets/javascripts/twitter/bootstrap-carousel.js +176 -0
  321. data/vendor/assets/javascripts/twitter/bootstrap-collapse.js +158 -0
  322. data/vendor/assets/javascripts/twitter/bootstrap-dropdown.js +150 -0
  323. data/vendor/assets/javascripts/twitter/bootstrap-modal.js +239 -0
  324. data/vendor/assets/javascripts/twitter/bootstrap-popover.js +103 -0
  325. data/vendor/assets/javascripts/twitter/bootstrap-scrollspy.js +151 -0
  326. data/vendor/assets/javascripts/twitter/bootstrap-tab.js +135 -0
  327. data/vendor/assets/javascripts/twitter/bootstrap-tooltip.js +275 -0
  328. data/vendor/assets/javascripts/twitter/bootstrap-transition.js +60 -0
  329. data/vendor/assets/javascripts/twitter/bootstrap-typeahead.js +300 -0
  330. data/vendor/assets/javascripts/twitter/my/bootstrap-typeahead.js +311 -0
  331. data/vendor/assets/stylesheets/.gitkeep +0 -0
  332. metadata +470 -0
@@ -0,0 +1,14 @@
1
+ driver = pgsql
2
+ connect = <%= "host=#{host} dbname=#{name} user=#{user} password=#{password}" %>
3
+
4
+ default_pass_scheme = SHA512 # PLAIN-MD5
5
+
6
+ user_query = SELECT \
7
+ '/var/mail/%d/%n/Maildir' AS userdb_home, \
8
+ # 5000 AS uid, 5000 AS gid, \
9
+ CONCAT('*:storage=',quota_kb,':messages=',quota_messages) AS quota_rule \
10
+ FROM virtual_users WHERE email='%u';
11
+
12
+ password_query = SELECT \
13
+ email as user, encrypted_password as password \
14
+ FROM virtual_users WHERE email='%u';
@@ -0,0 +1,297 @@
1
+ postmaster_address = <%= begin;postmaster ;end; %>
2
+ protocols = <%= protocols %> lmtp sieve
3
+
4
+ mail_plugins = quota autocreate
5
+
6
+ ##
7
+ ## Authentication processes
8
+ ##
9
+
10
+ disable_plaintext_auth = <%= begin;disable_plaintext_auth;rescue;'no';end; %>
11
+
12
+
13
+ # XXX
14
+ # Authentication cache size (e.g. 10M). 0 means it's disabled. Note that
15
+ # bsdauth, PAM and vpopmail require cache_key to be set for caching to be used.
16
+ #auth_cache_size = 0
17
+ #auth_cache_ttl = 1 hour
18
+ # TTL for negative hits (user not found, password mismatch).
19
+ # 0 disables caching them completely.
20
+ #auth_cache_negative_ttl = 1 hour
21
+ # XXX
22
+
23
+ #auth_realms =
24
+ #auth_default_realm =
25
+ auth_username_chars = <%= begin;auth_username_chars ;rescue;'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@' ;end; %>
26
+ #auth_username_translation =
27
+ auth_username_format = %Lu
28
+ auth_worker_max_count = <%= begin;auth_worker_max_count ;rescue;'30' ;end; %>
29
+
30
+ # Require a valid SSL client certificate or the authentication fails.
31
+ #auth_ssl_require_client_cert = no
32
+ # XXX
33
+ auth_mechanisms = <%= begin;auth_mechanisms ;rescue;'plain' ;end; %>
34
+
35
+
36
+ ##
37
+ ## Director-specific settings.
38
+ ##
39
+
40
+ #service imap-login {
41
+ # executable = imap-login director
42
+ #}
43
+ #service pop3-login {
44
+ # executable = pop3-login director
45
+ #}
46
+
47
+
48
+
49
+ ## XXX
50
+ ## Log destination.
51
+ ##
52
+
53
+ # Log file to use for error messages. "syslog" logs to syslog,
54
+ # /dev/stderr logs to stderr.
55
+ log_path = /var/log/dovecot.log
56
+
57
+ # Log file to use for informational messages. Defaults to log_path.
58
+ info_log_path = /var/log/dovecot.info
59
+ # Log file to use for debug messages. Defaults to info_log_path.
60
+ debug_log_path = /var/log/dovecot.debug
61
+
62
+ ##
63
+ ## Logging verbosity and debugging.
64
+ ##
65
+
66
+ # Log unsuccessful authentication attempts and the reasons why they failed.
67
+ auth_verbose = <%= begin;auth_verbose ;rescue;'no' ;end; %>
68
+
69
+ # Even more verbose logging for debugging purposes. Shows for example SQL
70
+ # queries. XXX XXX XXX XXX XXX XXX XXX XXX
71
+ auth_debug = yes
72
+ auth_debug_passwords=yes
73
+ mail_debug = yes
74
+ verbose_ssl = yes
75
+ auth_verbose_passwords=plain
76
+
77
+ login_log_format_elements = user=|%u| method=%m rip=%r lip=%l mpid=%e %c
78
+
79
+ ##
80
+ ## Mailbox locations and namespaces
81
+ ##
82
+
83
+ mail_location = maildir:/var/mail/%d/%n/Maildir:INDEX=/var/mail/%d/%n/indexes
84
+
85
+ namespace inbox {
86
+ # Namespace type: private, shared or public
87
+ type = private
88
+ separator = .
89
+
90
+ #prefix =
91
+ #location =
92
+ inbox = yes
93
+ #hidden = no
94
+ #list = yes
95
+ #subscriptions = yes
96
+ }
97
+
98
+ ## TODO
99
+ # System user and group used to access mails. If you use multiple, userdb
100
+ # can override these by returning uid or gid fields. You can use either numbers
101
+ # or names. <doc/wiki/UserIds.txt>
102
+ mail_uid = 8
103
+ mail_gid = 12
104
+
105
+ first_valid_uid = 8
106
+ last_valid_uid = 8
107
+
108
+ first_valid_gid = 12
109
+ last_valid_gid = 12
110
+
111
+ mail_full_filesystem_access = no
112
+
113
+ ##
114
+ ## Mail processes
115
+ ##
116
+
117
+ auth_socket_path = /var/run/dovecot/auth-userdb
118
+ mail_cache_min_mail_count = <%= begin;mail_cache_min_mail_count ;rescue;'0' ;end; %>
119
+ maildir_very_dirty_syncs = yes
120
+ #default_vsz_limit = 256M
121
+ default_internal_user = mail
122
+
123
+ service imap-login {
124
+ inet_listener imap {
125
+ # imap_login__listener__port !!DO NOT REMOVE THIS LINE!!
126
+ port = <%= begin; imap_login__listener__port ;rescue;'143' ;end; %>
127
+ }
128
+ inet_listener imaps {
129
+ # imaps_login__listener__port !!DO NOT REMOVE THIS LINE!!
130
+ port = <%= begin; imaps_login__listener__port ;rescue;'993' ;end; %>
131
+ #ssl = yes
132
+ }
133
+ vsz_limit = $default_vsz_limit
134
+ }
135
+
136
+ service pop3-login {
137
+ inet_listener pop3 {
138
+ # pop3_login__listener__port !!DO NOT REMOVE THIS LINE!!
139
+ port = <%= begin; pop3_login__listener__port ;rescue;'110' ;end; %>
140
+ }
141
+ inet_listener pop3s {
142
+ # pop3s_login__listener__port !!DO NOT REMOVE THIS LINE!!
143
+ port = <%= begin; pop3s_login__listener__port ;rescue;'995' ;end; %>
144
+ ssl = yes
145
+ }
146
+ }
147
+
148
+ service lmtp {
149
+ unix_listener /var/spool/postfix/private/dovecot-lmtp {
150
+ mode = 0600
151
+ user = postfix
152
+ group = postfix
153
+ }
154
+ }
155
+
156
+ service imap {
157
+ #vsz_limit = $default_vsz_limit
158
+ # imap__process_limit !!DO NOT REMOVE THIS LINE!!
159
+ process_limit = <%= begin; imap__process_limit ;rescue;'1024' ;end; %>
160
+ }
161
+
162
+ service pop3 {
163
+ # pop3__process_limit !!DO NOT REMOVE THIS LINE!!
164
+ process_limit = <%= begin; pop3__process_limit ;rescue;'1024' ;end; %>
165
+ }
166
+
167
+ service auth {
168
+ unix_listener auth-userdb {
169
+ mode = 0600
170
+ user = mail
171
+ group = mail
172
+ }
173
+
174
+ # Postfix smtp-auth
175
+ unix_listener /var/spool/postfix/private/auth {
176
+ mode = 0666
177
+ user = postfix
178
+ group = postfix
179
+ }
180
+ }
181
+
182
+ service auth-worker {
183
+ user = $default_internal_user
184
+ }
185
+
186
+ service dict {
187
+ # If dict proxy is used, mail processes should have access to its socket.
188
+ # For example: mode=0660, group=vmail and global mail_access_groups=vmail
189
+ unix_listener dict {
190
+ #mode = 0600
191
+ #user =
192
+ #group =
193
+ }
194
+ }
195
+
196
+ ##
197
+ ## ManageSieve specific settings
198
+ ##
199
+
200
+ service managesieve-login {
201
+ inet_listener sieve {
202
+ port = 4190
203
+ }
204
+ }
205
+
206
+ service managesieve {
207
+ #process_count = 1024
208
+ }
209
+
210
+ ##
211
+ ## SSL settings
212
+ ##
213
+
214
+ # SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
215
+ ssl = no
216
+
217
+ ssl_cert = </etc/ssl/certs/dovecot.pem
218
+ ssl_key = </etc/ssl/private/dovecot.pem
219
+
220
+
221
+ ##
222
+ ## LDA specific settings (also used by LMTP)
223
+ ##
224
+
225
+ quota_full_tempfail = <%= begin;quota_full_tempfail;rescue;'no' ;end; %>
226
+
227
+ # Subject: header to use for rejection mails. You can use the same variables
228
+ # as for rejection_reason below.
229
+ rejection_subject = <%= begin;rejection_subject;rescue;'Rejected: %s' ;end; %>
230
+ # Human readable error message for rejection mails. You can use variables:
231
+ # %n = CRLF, %r = reason, %s = original subject, %t = recipient
232
+ rejection_reason = <%= begin;rejection_reason;rescue;'Your message to %t was automatically rejected:%n%r' ;end; %>
233
+
234
+ #recipient_delimiter = +
235
+ lda_mailbox_autocreate = no
236
+ lda_mailbox_autosubscribe = no
237
+
238
+
239
+ # Enable director for LMTP proxying:
240
+ protocol lmtp {
241
+ auth_socket_path = director-userdb
242
+ mail_plugins = $mail_plugins mail_log sieve
243
+ }
244
+ protocol lda {
245
+ mail_plugins = $mail_plugins
246
+ }
247
+ protocol imap {
248
+ mail_plugins = $mail_plugins imap_quota
249
+ }
250
+ protocol pop3 {
251
+ mail_plugins = $mail_plugins
252
+ }
253
+
254
+ ##
255
+ ## Quota limits
256
+ ##
257
+
258
+ plugin {
259
+ quota = maildir:User quota
260
+ quota_rule = *:storage=<%= begin;storage[:size] ;end; %>
261
+ quota_rule2 = Trash:storage=<%= begin;storage[:trash] ;end; %>
262
+ quota_rule3 = Spam:storage=<%= begin;storage[:spam] ;end; %>
263
+ }
264
+
265
+ plugin {
266
+ sieve = ~/.sieve
267
+ sieve_dir = ~/sieve
268
+ }
269
+
270
+ plugin {
271
+ autocreate = INBOX.Trash
272
+ autocreate2 = INBOX.Drafts
273
+ autocreate3 = INBOX.Sent
274
+ autocreate4 = INBOX.Spam
275
+ autosubscribe = INBOX.Trash
276
+ autosubscribe2 = INBOX.Drafts
277
+ autosubscribe3 = INBOX.Sent
278
+ autosubscribe4 = INBOX.Spam
279
+ mail_log_events = delete mailbox_delete
280
+ mail_log_fields = uid box msgid size flags vsize from subject
281
+ }
282
+
283
+
284
+
285
+ # Authentication for SQL users. Included from auth.conf.
286
+ #
287
+ # <doc/wiki/AuthDatabase.SQL.txt>
288
+
289
+ passdb {
290
+ driver = sql
291
+ args = /etc/dovecot/dovecot-sql.conf.ext
292
+ }
293
+
294
+ userdb {
295
+ driver = sql
296
+ args = /etc/dovecot/dovecot-sql.conf.ext
297
+ }
@@ -0,0 +1,63 @@
1
+ protocols = <%= protocols %> sieve
2
+
3
+ protocol imap {
4
+ mail_plugins = autocreate quota imap_quota
5
+ }
6
+
7
+ protocol pop3 {
8
+ mail_plugins = autocreate quota
9
+ listen = *:110
10
+ ssl_listen = *:995
11
+ }
12
+
13
+ protocol lda {
14
+ auth_socket_path = /var/run/dovecot/auth-master
15
+ postmaster_address = <%= postmaster %>
16
+ mail_plugins = sieve quota
17
+ log_path =
18
+ }
19
+
20
+ ssl = yes
21
+ ssl_cert_file = /etc/ssl/certs/dovecot.pem
22
+ ssl_key_file = /etc/ssl/private/dovecot.pem
23
+ #ssl_parameters_regenerate = 168
24
+
25
+ quota = maildir:User quota
26
+ quota_rule = *:storage=<%= storage[:size] %>
27
+ quota_rule2 = Trash:storage=<%= storage[:trash] %>
28
+ quota_rule = Spam:storage=<%= storage[:spam] %>
29
+
30
+ mail_location = maildir:/var/vmail/%d/%n/Maildir
31
+
32
+ namespace private {
33
+ separator = .
34
+ inbox = yes
35
+ }
36
+
37
+ auth default {
38
+ mechanisms = plain
39
+ passdb sql {
40
+ args = /etc/dovecot/dovecot-sql.conf
41
+ }
42
+ userdb sql {
43
+ args = /etc/dovecot/dovecot-sql.conf
44
+ }
45
+ !include_try /etc/dovecot/auth.d/*.auth
46
+ }
47
+
48
+ auth external {
49
+ socket connect {
50
+ master {
51
+ path = /var/run/dovecot/auth-master
52
+ mode = 0600
53
+ user = vmail
54
+ }
55
+ client {
56
+ path = /var/spool/postfix/private/auth
57
+ mode = 0600
58
+ user = postfix
59
+ group = postfix
60
+ }
61
+ }
62
+ }
63
+
@@ -0,0 +1,96 @@
1
+ Home /var/spool/dspam
2
+ OnFail error
3
+
4
+ Trust root
5
+ Trust vmail
6
+ Trust mail
7
+ Trust dspam
8
+
9
+ # send scanned mails via smtp back to postfix
10
+ DeliveryProto SMTP
11
+ DeliveryHost 127.0.0.1
12
+ DeliveryPort 7711 # <%#= delivery_port %>
13
+ DeliveryIdent localhost
14
+
15
+ # run dspam server on socket
16
+ ServerMode auto
17
+ ServerParameters "--deliver=innocent,spam"
18
+ ServerIdent "<%= hostname %>"
19
+ ServerPID /var/run/dspam/dspam.pid
20
+ ServerDomainSocketPath /var/run/dspam/dspam.sock
21
+
22
+
23
+ WebStats off
24
+ TrainingMode teft
25
+ TestConditionalTraining on
26
+ Tokenizer chain
27
+ Feature chained
28
+ Feature whitelist
29
+ Feature tb=5
30
+ Algorithm graham burton
31
+ PValue graham
32
+ ImprobabilityDrive on
33
+
34
+ # deliver spam to mailbox (filter it with sieve)
35
+ Preference "spamAction=deliver"
36
+ Preference "signatureLocation=headers" # 'message' or 'headers'
37
+ Preference "showFactors=on"
38
+ Preference "whitelistThreshold=10"
39
+ Preference "statisticalSedation=5"
40
+
41
+
42
+ AllowOverride trainingMode
43
+ AllowOverride spamAction spamSubject
44
+ AllowOverride statisticalSedation
45
+ AllowOverride enableBNR
46
+ AllowOverride enableWhitelist
47
+ AllowOverride signatureLocation
48
+ AllowOverride showFactors
49
+ AllowOverride optIn optOut
50
+ AllowOverride whitelistThreshold
51
+
52
+ Notifications off
53
+
54
+ #
55
+ # PostgreSQL
56
+ #
57
+ # Socket Method
58
+ #
59
+ PgSQLServer 127.0.0.1
60
+ PgSQLPort <%= database_port %>
61
+ PgSQLUser <%= database_user %>
62
+ PgSQLPass <%= database_pass %>
63
+ PgSQLDb <%= database %>
64
+ PgSQLConnectionCache 30
65
+ PgSQLUIDInSignature on
66
+
67
+ HashRecMax 98317
68
+ HashAutoExtend on
69
+ HashMaxExtents 0
70
+ HashExtentSize 49157
71
+ HashMaxSeek 100
72
+ HashConnectionCache 10
73
+
74
+ #
75
+ # Purge configuration for SQL-based installations using purge.sql
76
+ #
77
+ PurgeSignature 14
78
+ PurgeNeutral 90
79
+ PurgeUnused 90
80
+ PurgeHapaxes 30
81
+ PurgeHits1S 15
82
+ PurgeHits1I 15
83
+
84
+ LocalMX 127.0.0.1
85
+ SystemLog on
86
+ ParseToHeaders on
87
+ ChangeModeOnParse on
88
+ ChangeUserOnParse full
89
+
90
+ #ProcessorBias on
91
+ #UserLog on
92
+ #TrainPristine off
93
+ #Opt out
94
+ #Broken case
95
+ #Broken lineStripping
96
+