schleuder 3.5.3 → 4.0.2
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 +4 -4
- data/README.md +10 -21
- data/Rakefile +15 -12
- data/bin/schleuder +1 -1
- data/db/migrate/20140501103532_create_lists.rb +1 -1
- data/db/migrate/20140501112859_create_subscriptions.rb +1 -1
- data/db/migrate/{201508092100_add_language_to_lists.rb → 20150809210000_add_language_to_lists.rb} +1 -1
- data/db/migrate/20150812165700_change_keywords_admin_only_defaults.rb +1 -1
- data/db/migrate/20150813235800_add_forward_all_incoming_to_admins.rb +1 -1
- data/db/migrate/{201508141727_change_send_encrypted_only_default.rb → 20150814172700_change_send_encrypted_only_default.rb} +1 -1
- data/db/migrate/{201508222143_add_logfiles_to_keep_to_lists.rb → 20150822214300_add_logfiles_to_keep_to_lists.rb} +1 -1
- data/db/migrate/{201508261723_rename_delivery_disabled_to_delivery_enabled_and_change_default.rb → 20150826172300_rename_delivery_disabled_to_delivery_enabled_and_change_default.rb} +1 -1
- data/db/migrate/{201508261815_strip_gpg_passphrase.rb → 20150826181500_strip_gpg_passphrase.rb} +1 -1
- data/db/migrate/{201508261827_remove_default_mime.rb → 20150826182700_remove_default_mime.rb} +1 -1
- data/db/migrate/20160501172700_fix_headers_to_meta_defaults.rb +1 -1
- data/db/migrate/20170713215059_add_internal_footer_to_list.rb +1 -1
- data/db/migrate/20180110203100_add_sig_enc_to_headers_to_meta_defaults.rb +1 -1
- data/db/migrate/20180723173900_add_deliver_selfsent_to_list.rb +1 -1
- data/db/migrate/20190906194820_add_autocrypt_header_to_list.rb +1 -1
- data/db/migrate/20200118170110_add_set_reply_to_to_sender_and_munge_from.rb +15 -0
- data/db/schema.rb +45 -45
- data/etc/list-defaults.yml +18 -0
- data/etc/postfix/schleuder_sqlite.cf +1 -1
- data/etc/schleuder-weekly-key-maintenance.service +9 -0
- data/etc/schleuder-weekly-key-maintenance.timer +9 -0
- data/etc/schleuder.yml +3 -3
- data/lib/schleuder-api-daemon/helpers/schleuder-api-daemon-helper.rb +3 -3
- data/lib/schleuder-api-daemon/routes/subscription.rb +4 -4
- data/lib/schleuder.rb +13 -12
- data/lib/schleuder/cli.rb +9 -189
- data/lib/schleuder/cli/cert.rb +2 -2
- data/lib/schleuder/cli/cli_helper.rb +14 -0
- data/lib/schleuder/cli/schleuder_cert_manager.rb +4 -4
- data/lib/schleuder/conf.rb +4 -4
- data/lib/schleuder/errors/base.rb +2 -2
- data/lib/schleuder/errors/decryption_failed.rb +1 -1
- data/lib/schleuder/errors/fatal_error.rb +1 -1
- data/lib/schleuder/errors/key_adduid_failed.rb +1 -1
- data/lib/schleuder/errors/key_generation_failed.rb +1 -1
- data/lib/schleuder/errors/message_empty.rb +1 -1
- data/lib/schleuder/errors/message_too_big.rb +1 -1
- data/lib/schleuder/errors/too_many_keys.rb +1 -1
- data/lib/schleuder/filters/post_decryption/10_request.rb +3 -3
- data/lib/schleuder/filters/post_decryption/20_max_message_size.rb +1 -1
- data/lib/schleuder/filters/post_decryption/30_forward_to_owner.rb +1 -1
- data/lib/schleuder/filters/post_decryption/40_receive_admin_only.rb +1 -1
- data/lib/schleuder/filters/post_decryption/50_receive_authenticated_only.rb +1 -1
- data/lib/schleuder/filters/post_decryption/60_receive_signed_only.rb +1 -1
- data/lib/schleuder/filters/post_decryption/70_receive_encrypted_only.rb +1 -1
- data/lib/schleuder/filters/post_decryption/80_receive_from_subscribed_emailaddresses_only.rb +1 -1
- data/lib/schleuder/filters/pre_decryption/10_forward_bounce_to_admins.rb +1 -1
- data/lib/schleuder/filters/pre_decryption/30_send_key.rb +1 -1
- data/lib/schleuder/filters/pre_decryption/40_fix_exchange_messages.rb +1 -1
- data/lib/schleuder/filters/pre_decryption/50_strip_html_from_alternative.rb +2 -2
- data/lib/schleuder/filters_runner.rb +9 -9
- data/lib/schleuder/gpgme/ctx.rb +15 -67
- data/lib/schleuder/gpgme/key.rb +4 -136
- data/lib/schleuder/gpgme/user_id.rb +2 -0
- data/lib/schleuder/keyword_handlers/attach_list_key.rb +17 -0
- data/lib/schleuder/keyword_handlers/base.rb +36 -0
- data/lib/schleuder/keyword_handlers/get_version.rb +11 -0
- data/lib/schleuder/keyword_handlers/key_management.rb +141 -0
- data/lib/schleuder/keyword_handlers/list_management.rb +19 -0
- data/lib/schleuder/keyword_handlers/resend.rb +208 -0
- data/lib/schleuder/keyword_handlers/sign_this.rb +54 -0
- data/lib/schleuder/keyword_handlers/subscription_management.rb +213 -0
- data/lib/schleuder/keyword_handlers_runner.rb +146 -0
- data/lib/schleuder/list.rb +28 -40
- data/lib/schleuder/list_builder.rb +16 -5
- data/lib/schleuder/listlogger.rb +1 -1
- data/lib/schleuder/logger.rb +2 -6
- data/lib/schleuder/mail/{encrypted_part.rb → gpg/encrypted_part.rb} +0 -0
- data/lib/schleuder/mail/gpg/sign_part.rb +33 -0
- data/lib/schleuder/mail/message.rb +135 -40
- data/lib/schleuder/runner.rb +18 -16
- data/lib/schleuder/subscription.rb +35 -13
- data/lib/schleuder/validators/boolean_validator.rb +1 -1
- data/lib/schleuder/validators/email_validator.rb +1 -1
- data/lib/schleuder/validators/fingerprint_validator.rb +1 -1
- data/lib/schleuder/validators/greater_than_zero_validator.rb +1 -1
- data/lib/schleuder/validators/no_line_breaks_validator.rb +1 -1
- data/lib/schleuder/version.rb +1 -1
- data/locales/de.yml +49 -36
- data/locales/en.yml +34 -21
- metadata +131 -79
- data/bin/pinentry-clearpassphrase +0 -72
- data/lib/schleuder/plugin_runners/base.rb +0 -91
- data/lib/schleuder/plugin_runners/list_plugins_runner.rb +0 -24
- data/lib/schleuder/plugin_runners/request_plugins_runner.rb +0 -27
- data/lib/schleuder/plugins/attach_listkey.rb +0 -13
- data/lib/schleuder/plugins/get_version.rb +0 -7
- data/lib/schleuder/plugins/key_management.rb +0 -121
- data/lib/schleuder/plugins/list_management.rb +0 -15
- data/lib/schleuder/plugins/resend.rb +0 -199
- data/lib/schleuder/plugins/sign_this.rb +0 -46
- data/lib/schleuder/plugins/subscription_management.rb +0 -207
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9f8275838177195ab78283d9c737de9cbd2d39e816c9f41db2e31d785d787dd8
|
|
4
|
+
data.tar.gz: 464e220965c5d0ee43d300a1f988e7a27edd9344d751bae9e06a9a02fc5c2a43
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d6ba6aab5c19ae0f8f74a0fe44e84e5a10f4adf434f55454a1d7ca49943557fbad5db23ff06fee1a3e0efa5a248034f8a6a17dcbeb91864bf04ec68f8cd14d1f
|
|
7
|
+
data.tar.gz: bd361a32b63c6bcfa146e1369a45fa54e9c3c94d29baaefbbff01a1629b468c896a34c17cd6ff957357eaf67611a5b09b5c2b2d9a023130430a86f29892b19cb
|
data/README.md
CHANGED
|
@@ -1,36 +1,25 @@
|
|
|
1
|
-
Schleuder
|
|
1
|
+
Schleuder
|
|
2
2
|
======================================
|
|
3
3
|
|
|
4
4
|
Schleuder is a gpg-enabled mailing list manager with resending-capabilities. Subscribers can communicate encrypted (and pseudonymously) among themselves, receive emails from non-subscribers and send emails to non-subscribers via the list.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
also provides an API for the optional web interface called [schleuder-web](https://0xacab.org/schleuder/schleuder-web).
|
|
6
|
+
It aims to be robust, flexible, internationalized and also provides an API for the optional web interface called [schleuder-web](https://0xacab.org/schleuder/schleuder-web).
|
|
8
7
|
|
|
9
8
|
For more details see <https://schleuder.org/docs/>.
|
|
10
9
|
|
|
11
10
|
Requirements
|
|
12
11
|
------------
|
|
13
|
-
* ruby >=2.
|
|
14
|
-
* gnupg 2.
|
|
12
|
+
* ruby >=2.5
|
|
13
|
+
* gnupg >=2.2
|
|
15
14
|
* gpgme
|
|
16
15
|
* sqlite3
|
|
17
16
|
* openssl
|
|
17
|
+
* icu
|
|
18
18
|
|
|
19
|
-
*If you use Debian buster
|
|
20
|
-
|
|
21
|
-
*🛈 A note regarding Ubuntu: All Ubuntu versions up to and including 17.10 don't meet the requirements with their packaged versions of gnupg! To run Schleuder on Ubuntu you currently have to install a more recent version of gnupg manually. Only Ubuntu 18.04 ("bionic") provides modern enough versions of Schleuder's requirements.*
|
|
22
|
-
|
|
23
|
-
On systems that base on Debian 10 ("buster"), install the dependencies via
|
|
24
|
-
|
|
25
|
-
apt-get install ruby-dev gnupg2 libgpgme-dev libsqlite3-dev libssl-dev build-essential
|
|
26
|
-
|
|
19
|
+
*If you use Debian buster, CentOS 7 or Archlinux, please have a look at the [installation docs](https://schleuder.org/schleuder/docs/server-admins.html#installation). We do provide packages for those platforms, which simplify the installation a lot.*
|
|
27
20
|
|
|
28
21
|
We **recommend** to also run a random number generator like [haveged](http://www.issihosts.com/haveged/). This ensures Schleuder won't be blocked by lacking entropy, which otherwise might happen especially during key generation.
|
|
29
22
|
|
|
30
|
-
On Debian based systems, install it via
|
|
31
|
-
|
|
32
|
-
apt-get install haveged
|
|
33
|
-
|
|
34
23
|
|
|
35
24
|
Additionally these **rubygems** are required (will be installed automatically unless present):
|
|
36
25
|
|
|
@@ -47,15 +36,15 @@ Additionally these **rubygems** are required (will be installed automatically un
|
|
|
47
36
|
Installing Schleuder
|
|
48
37
|
------------
|
|
49
38
|
|
|
50
|
-
1. Download [the gem](https://schleuder.org/download/schleuder-
|
|
39
|
+
1. Download [the gem](https://schleuder.org/download/schleuder-4.0.2.gem) and [the OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.2.gem.sig) and verify:
|
|
51
40
|
```
|
|
52
41
|
gpg --recv-key 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
|
53
|
-
gpg --verify schleuder-
|
|
42
|
+
gpg --verify schleuder-4.0.2.gem.sig
|
|
54
43
|
```
|
|
55
44
|
|
|
56
45
|
2. If all went well install the gem:
|
|
57
46
|
```
|
|
58
|
-
gem install schleuder-
|
|
47
|
+
gem install schleuder-4.0.2.gem
|
|
59
48
|
```
|
|
60
49
|
|
|
61
50
|
3. Set up schleuder:
|
|
@@ -145,4 +134,4 @@ GNU GPL 3.0. Please see [LICENSE.txt](LICENSE.txt).
|
|
|
145
134
|
Alternative Download
|
|
146
135
|
--------------------
|
|
147
136
|
|
|
148
|
-
Alternatively to the gem-files you can download the latest release as [a tarball](https://schleuder.org/download/schleuder-
|
|
137
|
+
Alternatively to the gem-files you can download the latest release as [a tarball](https://schleuder.org/download/schleuder-4.0.2.tar.gz) and [its OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.2.tar.gz.sig).
|
data/Rakefile
CHANGED
|
@@ -7,7 +7,10 @@ require_relative "lib/#{project}.rb"
|
|
|
7
7
|
@filename_gem = "#{@tagname}.gem"
|
|
8
8
|
@filename_tarball = "#{@tagname}.tar.gz"
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
# Make ActiveRecord's tasks usable for us (without this, those tasks try to run
|
|
11
|
+
# in the "default_env" environment, which is not configured).
|
|
12
|
+
ENV['RACK_ENV'] ||= ENV['SCHLEUDER_ENV']
|
|
13
|
+
load 'active_record/railties/databases.rake'
|
|
11
14
|
|
|
12
15
|
# Configure ActiveRecord
|
|
13
16
|
ActiveRecord::Tasks::DatabaseTasks.tap do |config|
|
|
@@ -19,7 +22,7 @@ ActiveRecord::Tasks::DatabaseTasks.tap do |config|
|
|
|
19
22
|
end
|
|
20
23
|
|
|
21
24
|
# ActiveRecord requires this task to be present
|
|
22
|
-
Rake::Task.define_task(
|
|
25
|
+
Rake::Task.define_task('db:environment')
|
|
23
26
|
|
|
24
27
|
namespace :db do
|
|
25
28
|
# A shortcut.
|
|
@@ -42,7 +45,7 @@ end
|
|
|
42
45
|
task :publish_gem => :website
|
|
43
46
|
task :git_tag => :check_version
|
|
44
47
|
|
|
45
|
-
desc
|
|
48
|
+
desc 'Build new version: git-tag and gem-file'
|
|
46
49
|
task :new_version => [
|
|
47
50
|
:check_version,
|
|
48
51
|
:edit_readme, :edit_changelog,
|
|
@@ -57,12 +60,12 @@ task :new_version => [
|
|
|
57
60
|
] do
|
|
58
61
|
end
|
|
59
62
|
|
|
60
|
-
desc
|
|
63
|
+
desc 'Edit CHANGELOG.md'
|
|
61
64
|
task :edit_changelog do
|
|
62
65
|
edit_and_add_file('CHANGELOG')
|
|
63
66
|
end
|
|
64
67
|
|
|
65
|
-
desc
|
|
68
|
+
desc 'Edit README'
|
|
66
69
|
task :edit_readme do
|
|
67
70
|
edit_and_add_file('README')
|
|
68
71
|
end
|
|
@@ -72,12 +75,12 @@ task :git_tag do
|
|
|
72
75
|
`git tag -u #{@gpguid} -s -m "Version #{@version}" #{@tagname}`
|
|
73
76
|
end
|
|
74
77
|
|
|
75
|
-
desc
|
|
78
|
+
desc 'Add changed version to git-index'
|
|
76
79
|
task :git_add_version do
|
|
77
80
|
`git add lib/#{project}/version.rb`
|
|
78
81
|
end
|
|
79
82
|
|
|
80
|
-
desc
|
|
83
|
+
desc 'Commit changes as new version'
|
|
81
84
|
task :git_commit do
|
|
82
85
|
`git commit -m "Version #{@version}"`
|
|
83
86
|
end
|
|
@@ -111,21 +114,21 @@ desc 'Publish gem-file to rubygems.org'
|
|
|
111
114
|
task :publish_gem do
|
|
112
115
|
puts "Really push #{@filename_gem} to rubygems.org? [yN]"
|
|
113
116
|
if $stdin.gets.match(/^y/i)
|
|
114
|
-
puts
|
|
117
|
+
puts 'Pushing...'
|
|
115
118
|
`gem push #{@filename_gem}`
|
|
116
119
|
else
|
|
117
|
-
puts
|
|
120
|
+
puts 'Not pushed.'
|
|
118
121
|
end
|
|
119
122
|
end
|
|
120
123
|
|
|
121
124
|
desc 'Build and sign a tarball'
|
|
122
125
|
task :build_tarball do
|
|
123
|
-
`git archive --format tar.gz --prefix "#{@tagname}/" -o #{@filename_tarball}
|
|
126
|
+
`git archive --format tar.gz --prefix "#{@tagname}/" -o #{@filename_tarball} main`
|
|
124
127
|
end
|
|
125
128
|
|
|
126
129
|
desc 'Describe manual release-tasks'
|
|
127
130
|
task :website do
|
|
128
|
-
puts
|
|
131
|
+
puts 'Please remember to publish the release-notes on the website and on schleuder-announce.'
|
|
129
132
|
end
|
|
130
133
|
|
|
131
134
|
desc 'Check if version-tag already exists'
|
|
@@ -133,7 +136,7 @@ task :check_version do
|
|
|
133
136
|
# Check if Schleuder::VERSION has been updated since last release
|
|
134
137
|
if `git tag`.match?(/^#{@tagname}$/)
|
|
135
138
|
$stderr.puts "Warning: Tag '#{@tagname}' already exists. Did you forget to update lib/#{project}/version.rb?"
|
|
136
|
-
$stderr.print
|
|
139
|
+
$stderr.print 'Delete tag to continue? [yN] '
|
|
137
140
|
if $stdin.gets.match(/^y/i)
|
|
138
141
|
`git tag -d #{@tagname}`
|
|
139
142
|
else
|
data/bin/schleuder
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class AddForwardAllIncomingToAdmins < ActiveRecord::Migration
|
|
1
|
+
class AddForwardAllIncomingToAdmins < ActiveRecord::Migration[4.2]
|
|
2
2
|
def up
|
|
3
3
|
if ! column_exists?(:lists, :forward_all_incoming_to_admins)
|
|
4
4
|
add_column :lists, :forward_all_incoming_to_admins, :boolean, default: false
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class RenameDeliveryDisabledToDeliveryEnabledAndChangeDefault < ActiveRecord::Migration
|
|
1
|
+
class RenameDeliveryDisabledToDeliveryEnabledAndChangeDefault < ActiveRecord::Migration[4.2]
|
|
2
2
|
def up
|
|
3
3
|
if column_exists?(:subscriptions, :delivery_disabled)
|
|
4
4
|
rename_column :subscriptions, :delivery_disabled, :delivery_enabled
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class AddSigEncToHeadersToMetaDefaults < ActiveRecord::Migration
|
|
1
|
+
class AddSigEncToHeadersToMetaDefaults < ActiveRecord::Migration[4.2]
|
|
2
2
|
def up
|
|
3
3
|
change_column_default :lists, :headers_to_meta, '["from", "to", "cc", "date", "sig", "enc"]'
|
|
4
4
|
list_klass = create_list_klass
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class AddSetReplyToToSenderAndMungeFrom < ActiveRecord::Migration[4.2]
|
|
2
|
+
def up
|
|
3
|
+
if ! column_exists?(:lists, :set_reply_to_to_sender)
|
|
4
|
+
add_column :lists, :set_reply_to_to_sender, :boolean, default: false
|
|
5
|
+
end
|
|
6
|
+
if ! column_exists?(:lists, :munge_from)
|
|
7
|
+
add_column :lists, :munge_from, :boolean, default: false
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def down
|
|
12
|
+
remove_column(:lists, :set_reply_to_to_sender)
|
|
13
|
+
remove_column(:lists, :munge_from)
|
|
14
|
+
end
|
|
15
|
+
end
|
data/db/schema.rb
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
1
|
# This file is auto-generated from the current state of the database. Instead
|
|
3
2
|
# of editing this file, please use the migrations feature of Active Record to
|
|
4
3
|
# incrementally modify your database, and then regenerate this schema definition.
|
|
5
4
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
# from scratch.
|
|
10
|
-
#
|
|
5
|
+
# This file is the source Rails uses to define your schema when running `bin/rails
|
|
6
|
+
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
|
7
|
+
# be faster and is potentially less error prone than running all of your
|
|
8
|
+
# migrations from scratch. Old migrations may fail to apply correctly if those
|
|
9
|
+
# migrations use external dependencies or application code.
|
|
11
10
|
#
|
|
12
11
|
# It's strongly recommended that you check this file into your version control system.
|
|
13
12
|
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
|
13
|
+
ActiveRecord::Schema.define(version: 2020_01_18_170110) do
|
|
15
14
|
|
|
16
15
|
create_table "lists", force: :cascade do |t|
|
|
17
16
|
t.datetime "created_at"
|
|
18
17
|
t.datetime "updated_at"
|
|
19
|
-
t.string
|
|
20
|
-
t.string
|
|
21
|
-
t.string
|
|
22
|
-
t.string
|
|
23
|
-
t.string
|
|
24
|
-
t.string
|
|
25
|
-
t.string
|
|
26
|
-
t.text
|
|
27
|
-
t.text
|
|
28
|
-
t.text
|
|
29
|
-
t.text
|
|
30
|
-
t.text
|
|
31
|
-
t.boolean
|
|
32
|
-
t.boolean
|
|
33
|
-
t.boolean
|
|
34
|
-
t.boolean
|
|
35
|
-
t.boolean
|
|
36
|
-
t.boolean
|
|
37
|
-
t.boolean
|
|
38
|
-
t.boolean
|
|
39
|
-
t.boolean
|
|
40
|
-
t.boolean
|
|
41
|
-
t.boolean
|
|
42
|
-
t.
|
|
43
|
-
t.
|
|
44
|
-
t.
|
|
45
|
-
t.
|
|
46
|
-
t.
|
|
47
|
-
t.
|
|
48
|
-
t.boolean
|
|
18
|
+
t.string "email"
|
|
19
|
+
t.string "fingerprint"
|
|
20
|
+
t.string "log_level", default: "warn"
|
|
21
|
+
t.string "subject_prefix", default: ""
|
|
22
|
+
t.string "subject_prefix_in", default: ""
|
|
23
|
+
t.string "subject_prefix_out", default: ""
|
|
24
|
+
t.string "openpgp_header_preference", default: "signencrypt"
|
|
25
|
+
t.text "public_footer", default: ""
|
|
26
|
+
t.text "headers_to_meta", default: "[\"from\", \"to\", \"cc\", \"date\", \"sig\", \"enc\"]"
|
|
27
|
+
t.text "bounces_drop_on_headers", default: "{\"x-spam-flag\":\"yes\"}"
|
|
28
|
+
t.text "keywords_admin_only", default: "[\"subscribe\", \"unsubscribe\", \"delete-key\"]"
|
|
29
|
+
t.text "keywords_admin_notify", default: "[\"add-key\"]"
|
|
30
|
+
t.boolean "send_encrypted_only", default: true
|
|
31
|
+
t.boolean "receive_encrypted_only", default: false
|
|
32
|
+
t.boolean "receive_signed_only", default: false
|
|
33
|
+
t.boolean "receive_authenticated_only", default: false
|
|
34
|
+
t.boolean "receive_from_subscribed_emailaddresses_only", default: false
|
|
35
|
+
t.boolean "receive_admin_only", default: false
|
|
36
|
+
t.boolean "keep_msgid", default: true
|
|
37
|
+
t.boolean "bounces_drop_all", default: false
|
|
38
|
+
t.boolean "bounces_notify_admins", default: true
|
|
39
|
+
t.boolean "include_list_headers", default: true
|
|
40
|
+
t.boolean "include_openpgp_header", default: true
|
|
41
|
+
t.integer "max_message_size_kb", default: 10240
|
|
42
|
+
t.string "language", default: "en"
|
|
43
|
+
t.boolean "forward_all_incoming_to_admins", default: false
|
|
44
|
+
t.integer "logfiles_to_keep", default: 2
|
|
45
|
+
t.text "internal_footer", default: ""
|
|
46
|
+
t.boolean "deliver_selfsent", default: true
|
|
47
|
+
t.boolean "include_autocrypt_header", default: true
|
|
48
|
+
t.boolean "set_reply_to_to_sender", default: false
|
|
49
|
+
t.boolean "munge_from", default: false
|
|
49
50
|
end
|
|
50
51
|
|
|
51
52
|
create_table "subscriptions", force: :cascade do |t|
|
|
52
|
-
t.integer
|
|
53
|
-
t.string
|
|
54
|
-
t.string
|
|
55
|
-
t.boolean
|
|
56
|
-
t.boolean
|
|
53
|
+
t.integer "list_id"
|
|
54
|
+
t.string "email"
|
|
55
|
+
t.string "fingerprint"
|
|
56
|
+
t.boolean "admin", default: false
|
|
57
|
+
t.boolean "delivery_enabled", default: true
|
|
57
58
|
t.datetime "created_at"
|
|
58
59
|
t.datetime "updated_at"
|
|
60
|
+
t.index ["email", "list_id"], name: "index_subscriptions_on_email_and_list_id", unique: true
|
|
61
|
+
t.index ["list_id"], name: "index_subscriptions_on_list_id"
|
|
59
62
|
end
|
|
60
63
|
|
|
61
|
-
add_index "subscriptions", ["email", "list_id"], name: "index_subscriptions_on_email_and_list_id", unique: true
|
|
62
|
-
add_index "subscriptions", ["list_id"], name: "index_subscriptions_on_list_id"
|
|
63
|
-
|
|
64
64
|
end
|
data/etc/list-defaults.yml
CHANGED
|
@@ -131,3 +131,21 @@ forward_all_incoming_to_admins: false
|
|
|
131
131
|
# Disabling this only works for signed e-mails; any e-mail that is unsigned
|
|
132
132
|
# sent to the list is treated as coming from an unknown source
|
|
133
133
|
deliver_selfsent: true
|
|
134
|
+
|
|
135
|
+
# Set reply-to header to original sender's reply-to?
|
|
136
|
+
# Enabling this will set the reply-to-header of emails sent by schleuder
|
|
137
|
+
# to the original sender's reply-to-header. If the original sender
|
|
138
|
+
# did not supply a reply-to-header, the original from-header will be used.
|
|
139
|
+
# This option can enabled for improved usability since this affect
|
|
140
|
+
# mail client's reply-to button to reply to the original sender instead of
|
|
141
|
+
# the whole list.
|
|
142
|
+
set_reply_to_to_sender: false
|
|
143
|
+
|
|
144
|
+
# Munge from-header?
|
|
145
|
+
# Enabling this option will add the original sender to the from-header.
|
|
146
|
+
# To avoid DMARC issues, we still use the list's address as from-address.
|
|
147
|
+
# However the sender's address will be included as displayed name.
|
|
148
|
+
# For example: "sender@sender.org via list@list.org" <list@list.org>
|
|
149
|
+
# This option can enabled for improved usability since this affect
|
|
150
|
+
# mail client's displayed name.
|
|
151
|
+
munge_from: false
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
# it is not recommended to use this table for more powerful
|
|
16
16
|
# configuration options (e.g. transport_maps) because it could give
|
|
17
17
|
# the schleuder user (which can write the given sqlite database) the
|
|
18
|
-
# power to change settings for
|
|
18
|
+
# power to change settings for other mail handled by this Postfix
|
|
19
19
|
# instance.
|
|
20
20
|
|
|
21
21
|
dbpath = /var/lib/schleuder/db.sqlite
|