schleuder 3.5.0 → 4.0.0
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 +11 -10
- data/Rakefile +12 -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 +10 -12
- data/lib/schleuder/cli.rb +9 -188
- 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 +10 -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 -35
- 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/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 +119 -54
- 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 -138
- 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: 71fae6520fb76978d0292533c7e4b1d4ed72cd881ba81be71eacd2ab1811d5e2
|
|
4
|
+
data.tar.gz: 5542044280bcd7bb2875bdc443c37146c490fe186a16c9d2449d8d9dab8131c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8c724133f39be4c6af72c61d6f26e95bcf4f1a99f6184ac845d55a36d53eaea60fc78273950609f3bbae7fc4faec72005adf9324ab5186d505be58495cb58582
|
|
7
|
+
data.tar.gz: 608978e0555f93ab3e4f7aefb67063df9e0fd8f7b06b28d20ea8f869384ba7ed0e08ba0d071ca81fccd2f269656907413b82fce930c6535aff30f60ef8ad4f95
|
data/README.md
CHANGED
|
@@ -10,19 +10,20 @@ For more details see <https://schleuder.org/docs/>.
|
|
|
10
10
|
|
|
11
11
|
Requirements
|
|
12
12
|
------------
|
|
13
|
-
* ruby >=2.
|
|
14
|
-
* gnupg 2.
|
|
13
|
+
* ruby >=2.5
|
|
14
|
+
* gnupg >=2.2
|
|
15
15
|
* gpgme
|
|
16
16
|
* sqlite3
|
|
17
17
|
* openssl
|
|
18
|
+
* icu
|
|
18
19
|
|
|
19
|
-
*If you use Debian
|
|
20
|
+
*If you use Debian buster or CentOS 7, 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.*
|
|
20
21
|
|
|
21
22
|
*🛈 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
|
|
|
23
|
-
On systems that base on Debian
|
|
24
|
+
On systems that base on Debian 10 ("buster"), install the dependencies via
|
|
24
25
|
|
|
25
|
-
apt-get install ruby-dev gnupg2 libgpgme-dev libsqlite3-dev libssl-dev build-essential
|
|
26
|
+
apt-get install ruby-dev gnupg2 libgpgme-dev libsqlite3-dev libssl-dev build-essential libicu-dev
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
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.
|
|
@@ -47,15 +48,15 @@ Additionally these **rubygems** are required (will be installed automatically un
|
|
|
47
48
|
Installing Schleuder
|
|
48
49
|
------------
|
|
49
50
|
|
|
50
|
-
1. Download [the gem](https://schleuder.org/download/schleuder-
|
|
51
|
+
1. Download [the gem](https://schleuder.org/download/schleuder-4.0.0.gem) and [the OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.0.gem.sig) and verify:
|
|
51
52
|
```
|
|
52
53
|
gpg --recv-key 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
|
53
|
-
gpg --verify schleuder-
|
|
54
|
+
gpg --verify schleuder-4.0.0.gem.sig
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
2. If all went well install the gem:
|
|
57
58
|
```
|
|
58
|
-
gem install schleuder-
|
|
59
|
+
gem install schleuder-4.0.0.gem
|
|
59
60
|
```
|
|
60
61
|
|
|
61
62
|
3. Set up schleuder:
|
|
@@ -112,7 +113,7 @@ To execute the test suite run:
|
|
|
112
113
|
|
|
113
114
|
bundle exec rspec
|
|
114
115
|
|
|
115
|
-
Please note: Some of the specs use 'pgrep'. On systems that base on Debian
|
|
116
|
+
Please note: Some of the specs use 'pgrep'. On systems that base on Debian 10 ("buster") install it via
|
|
116
117
|
|
|
117
118
|
apt-get install procps
|
|
118
119
|
|
|
@@ -145,4 +146,4 @@ GNU GPL 3.0. Please see [LICENSE.txt](LICENSE.txt).
|
|
|
145
146
|
Alternative Download
|
|
146
147
|
--------------------
|
|
147
148
|
|
|
148
|
-
Alternatively to the gem-files you can download the latest release as [a tarball](https://schleuder.org/download/schleuder-
|
|
149
|
+
Alternatively to the gem-files you can download the latest release as [a tarball](https://schleuder.org/download/schleuder-4.0.0.tar.gz) and [its OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.0.tar.gz.sig).
|
data/Rakefile
CHANGED
|
@@ -3,11 +3,11 @@ require_relative "lib/#{project}.rb"
|
|
|
3
3
|
|
|
4
4
|
@version = Schleuder::VERSION
|
|
5
5
|
@tagname = "#{project}-#{@version}"
|
|
6
|
-
@gpguid = '
|
|
6
|
+
@gpguid = 'B3D190D5235C74E1907EACFE898F2C91E2E6E1F3'
|
|
7
7
|
@filename_gem = "#{@tagname}.gem"
|
|
8
8
|
@filename_tarball = "#{@tagname}.tar.gz"
|
|
9
9
|
|
|
10
|
-
load
|
|
10
|
+
load 'active_record/railties/databases.rake'
|
|
11
11
|
|
|
12
12
|
# Configure ActiveRecord
|
|
13
13
|
ActiveRecord::Tasks::DatabaseTasks.tap do |config|
|
|
@@ -19,7 +19,7 @@ ActiveRecord::Tasks::DatabaseTasks.tap do |config|
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
# ActiveRecord requires this task to be present
|
|
22
|
-
Rake::Task.define_task(
|
|
22
|
+
Rake::Task.define_task('db:environment')
|
|
23
23
|
|
|
24
24
|
namespace :db do
|
|
25
25
|
# A shortcut.
|
|
@@ -42,7 +42,7 @@ end
|
|
|
42
42
|
task :publish_gem => :website
|
|
43
43
|
task :git_tag => :check_version
|
|
44
44
|
|
|
45
|
-
desc
|
|
45
|
+
desc 'Build new version: git-tag and gem-file'
|
|
46
46
|
task :new_version => [
|
|
47
47
|
:check_version,
|
|
48
48
|
:edit_readme, :edit_changelog,
|
|
@@ -57,12 +57,12 @@ task :new_version => [
|
|
|
57
57
|
] do
|
|
58
58
|
end
|
|
59
59
|
|
|
60
|
-
desc
|
|
60
|
+
desc 'Edit CHANGELOG.md'
|
|
61
61
|
task :edit_changelog do
|
|
62
62
|
edit_and_add_file('CHANGELOG')
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
-
desc
|
|
65
|
+
desc 'Edit README'
|
|
66
66
|
task :edit_readme do
|
|
67
67
|
edit_and_add_file('README')
|
|
68
68
|
end
|
|
@@ -72,12 +72,12 @@ task :git_tag do
|
|
|
72
72
|
`git tag -u #{@gpguid} -s -m "Version #{@version}" #{@tagname}`
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
desc
|
|
75
|
+
desc 'Add changed version to git-index'
|
|
76
76
|
task :git_add_version do
|
|
77
77
|
`git add lib/#{project}/version.rb`
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
-
desc
|
|
80
|
+
desc 'Commit changes as new version'
|
|
81
81
|
task :git_commit do
|
|
82
82
|
`git commit -m "Version #{@version}"`
|
|
83
83
|
end
|
|
@@ -111,10 +111,10 @@ desc 'Publish gem-file to rubygems.org'
|
|
|
111
111
|
task :publish_gem do
|
|
112
112
|
puts "Really push #{@filename_gem} to rubygems.org? [yN]"
|
|
113
113
|
if $stdin.gets.match(/^y/i)
|
|
114
|
-
puts
|
|
114
|
+
puts 'Pushing...'
|
|
115
115
|
`gem push #{@filename_gem}`
|
|
116
116
|
else
|
|
117
|
-
puts
|
|
117
|
+
puts 'Not pushed.'
|
|
118
118
|
end
|
|
119
119
|
end
|
|
120
120
|
|
|
@@ -125,7 +125,7 @@ end
|
|
|
125
125
|
|
|
126
126
|
desc 'Describe manual release-tasks'
|
|
127
127
|
task :website do
|
|
128
|
-
puts
|
|
128
|
+
puts 'Please remember to publish the release-notes on the website and on schleuder-announce.'
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
desc 'Check if version-tag already exists'
|
|
@@ -133,7 +133,7 @@ task :check_version do
|
|
|
133
133
|
# Check if Schleuder::VERSION has been updated since last release
|
|
134
134
|
if `git tag`.match?(/^#{@tagname}$/)
|
|
135
135
|
$stderr.puts "Warning: Tag '#{@tagname}' already exists. Did you forget to update lib/#{project}/version.rb?"
|
|
136
|
-
$stderr.print
|
|
136
|
+
$stderr.print 'Delete tag to continue? [yN] '
|
|
137
137
|
if $stdin.gets.match(/^y/i)
|
|
138
138
|
`git tag -d #{@tagname}`
|
|
139
139
|
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 `rails
|
|
6
|
+
# db:schema:load`. When creating a new database, `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", limit: 255
|
|
19
|
+
t.string "fingerprint", limit: 255
|
|
20
|
+
t.string "log_level", limit: 255, default: "warn"
|
|
21
|
+
t.string "subject_prefix", limit: 255, default: ""
|
|
22
|
+
t.string "subject_prefix_in", limit: 255, default: ""
|
|
23
|
+
t.string "subject_prefix_out", limit: 255, default: ""
|
|
24
|
+
t.string "openpgp_header_preference", limit: 255, 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", limit: 255, 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", limit: 255
|
|
55
|
+
t.string "fingerprint", limit: 255
|
|
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
|