schleuder 2.2.4 → 3.2.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 +5 -5
- data/README.md +138 -0
- data/Rakefile +136 -0
- data/bin/pinentry-clearpassphrase +72 -0
- data/bin/schleuder +9 -89
- data/bin/schleuder-api-daemon +4 -0
- data/db/migrate/20140501103532_create_lists.rb +39 -0
- data/db/migrate/20140501112859_create_subscriptions.rb +21 -0
- data/db/migrate/201508092100_add_language_to_lists.rb +11 -0
- data/db/migrate/20150812165700_change_keywords_admin_only_defaults.rb +8 -0
- data/db/migrate/20150813235800_add_forward_all_incoming_to_admins.rb +11 -0
- data/db/migrate/201508141727_change_send_encrypted_only_default.rb +8 -0
- data/db/migrate/201508222143_add_logfiles_to_keep_to_lists.rb +11 -0
- data/db/migrate/201508261723_rename_delivery_disabled_to_delivery_enabled_and_change_default.rb +14 -0
- data/db/migrate/201508261815_strip_gpg_passphrase.rb +11 -0
- data/db/migrate/201508261827_remove_default_mime.rb +9 -0
- data/db/migrate/20160501172700_fix_headers_to_meta_defaults.rb +8 -0
- data/db/migrate/20170713215059_add_internal_footer_to_list.rb +11 -0
- data/db/schema.rb +62 -0
- data/etc/init.d/schleuder-api-daemon +87 -0
- data/etc/list-defaults.yml +123 -0
- data/etc/postfix/schleuder_sqlite.cf +28 -0
- data/etc/schleuder-api-daemon.service +10 -0
- data/etc/schleuder.cron.weekly +6 -0
- data/etc/schleuder.yml +61 -0
- data/lib/schleuder-api-daemon.rb +420 -0
- data/lib/schleuder.rb +81 -47
- data/lib/schleuder/cli.rb +334 -0
- data/lib/schleuder/cli/cert.rb +24 -0
- data/lib/schleuder/cli/schleuder_cert_manager.rb +84 -0
- data/lib/schleuder/cli/subcommand_fix.rb +11 -0
- data/lib/schleuder/conf.rb +131 -0
- data/lib/schleuder/errors/active_model_error.rb +15 -0
- data/lib/schleuder/errors/base.rb +17 -0
- data/lib/schleuder/errors/decryption_failed.rb +16 -0
- data/lib/schleuder/errors/fatal_error.rb +13 -0
- data/lib/schleuder/errors/file_not_found.rb +14 -0
- data/lib/schleuder/errors/invalid_listname.rb +13 -0
- data/lib/schleuder/errors/key_adduid_failed.rb +13 -0
- data/lib/schleuder/errors/key_generation_failed.rb +16 -0
- data/lib/schleuder/errors/keyword_admin_only.rb +13 -0
- data/lib/schleuder/errors/list_exists.rb +13 -0
- data/lib/schleuder/errors/list_not_found.rb +14 -0
- data/lib/schleuder/errors/list_property_missing.rb +14 -0
- data/lib/schleuder/errors/listdir_problem.rb +16 -0
- data/lib/schleuder/errors/loading_list_settings_failed.rb +14 -0
- data/lib/schleuder/errors/message_empty.rb +14 -0
- data/lib/schleuder/errors/message_not_from_admin.rb +13 -0
- data/lib/schleuder/errors/message_sender_not_subscribed.rb +13 -0
- data/lib/schleuder/errors/message_too_big.rb +14 -0
- data/lib/schleuder/errors/message_unauthenticated.rb +13 -0
- data/lib/schleuder/errors/message_unencrypted.rb +13 -0
- data/lib/schleuder/errors/message_unsigned.rb +13 -0
- data/lib/schleuder/errors/standard_error.rb +5 -0
- data/lib/schleuder/errors/too_many_keys.rb +17 -0
- data/lib/schleuder/errors/unknown_list_option.rb +14 -0
- data/lib/schleuder/filters/auth_filter.rb +39 -0
- data/lib/schleuder/filters/bounces_filter.rb +12 -0
- data/lib/schleuder/filters/forward_filter.rb +17 -0
- data/lib/schleuder/filters/forward_incoming.rb +13 -0
- data/lib/schleuder/filters/hotmail_message_filter.rb +25 -0
- data/lib/schleuder/filters/max_message_size.rb +14 -0
- data/lib/schleuder/filters/request_filter.rb +26 -0
- data/lib/schleuder/filters/send_key_filter.rb +20 -0
- data/lib/schleuder/filters/strip_alternative_filter.rb +21 -0
- data/lib/schleuder/filters_runner.rb +83 -0
- data/lib/schleuder/gpgme/ctx.rb +274 -0
- data/lib/schleuder/gpgme/import_status.rb +27 -0
- data/lib/schleuder/gpgme/key.rb +212 -0
- data/lib/schleuder/gpgme/sub_key.rb +13 -0
- data/lib/schleuder/gpgme/user_id.rb +22 -0
- data/lib/schleuder/list.rb +318 -127
- data/lib/schleuder/list_builder.rb +139 -0
- data/lib/schleuder/listlogger.rb +31 -0
- data/lib/schleuder/logger.rb +23 -0
- data/lib/schleuder/logger_notifications.rb +69 -0
- data/lib/schleuder/mail/message.rb +482 -0
- data/lib/schleuder/mail/parts_list.rb +9 -0
- data/lib/schleuder/plugin_runners/base.rb +91 -0
- data/lib/schleuder/plugin_runners/list_plugins_runner.rb +24 -0
- data/lib/schleuder/plugin_runners/request_plugins_runner.rb +27 -0
- data/lib/schleuder/plugins/attach_listkey.rb +17 -0
- data/lib/schleuder/plugins/get_version.rb +7 -0
- data/lib/schleuder/plugins/key_management.rb +113 -0
- data/lib/schleuder/plugins/list_management.rb +15 -0
- data/lib/schleuder/plugins/resend.rb +196 -0
- data/lib/schleuder/plugins/sign_this.rb +46 -0
- data/lib/schleuder/plugins/subscription_management.rb +140 -0
- data/lib/schleuder/runner.rb +130 -0
- data/lib/schleuder/subscription.rb +98 -0
- data/lib/schleuder/validators/boolean_validator.rb +7 -0
- data/lib/schleuder/validators/email_validator.rb +7 -0
- data/lib/schleuder/validators/fingerprint_validator.rb +7 -0
- data/lib/schleuder/validators/greater_than_zero_validator.rb +7 -0
- data/lib/schleuder/validators/no_line_breaks_validator.rb +7 -0
- data/lib/schleuder/version.rb +1 -1
- data/locales/de.yml +179 -0
- data/locales/en.yml +179 -0
- metadata +305 -108
- checksums.yaml.gz.sig +0 -3
- data.tar.gz.sig +0 -2
- data/LICENSE +0 -339
- data/README +0 -32
- data/bin/schleuder-fix-gem-dependencies +0 -37
- data/bin/schleuder-init-setup +0 -37
- data/bin/schleuder-migrate-v2.1-to-v2.2 +0 -225
- data/bin/schleuder-newlist +0 -413
- data/contrib/check-expired-keys.rb +0 -60
- data/contrib/mutt-schleuder-colors.rc +0 -10
- data/contrib/mutt-schleuder-resend.vim +0 -24
- data/contrib/smtpserver.rb +0 -76
- data/ext/default-list.conf +0 -149
- data/ext/default-members.conf +0 -7
- data/ext/list.conf.example +0 -14
- data/ext/schleuder.conf +0 -64
- data/lib/schleuder/archiver.rb +0 -46
- data/lib/schleuder/crypt.rb +0 -210
- data/lib/schleuder/errors.rb +0 -5
- data/lib/schleuder/list_config.rb +0 -146
- data/lib/schleuder/log/listlogger.rb +0 -57
- data/lib/schleuder/log/outputter/emailoutputter.rb +0 -120
- data/lib/schleuder/log/outputter/metaemailoutputter.rb +0 -50
- data/lib/schleuder/log/schleuderlogger.rb +0 -34
- data/lib/schleuder/mail.rb +0 -873
- data/lib/schleuder/mailer.rb +0 -26
- data/lib/schleuder/member.rb +0 -69
- data/lib/schleuder/plugin.rb +0 -54
- data/lib/schleuder/processor.rb +0 -363
- data/lib/schleuder/schleuder_config.rb +0 -75
- data/lib/schleuder/storage.rb +0 -84
- data/lib/schleuder/utils.rb +0 -80
- data/man/schleuder-newlist.8 +0 -174
- data/man/schleuder.8 +0 -416
- data/plugins/README +0 -20
- data/plugins/manage_keys_plugin.rb +0 -113
- data/plugins/manage_members_plugin.rb +0 -156
- data/plugins/manage_self_plugin.rb +0 -26
- data/plugins/resend_plugin.rb +0 -35
- data/plugins/sign_this_plugin.rb +0 -14
- data/plugins/version_plugin.rb +0 -12
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
class CreateLists < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
if ! table_exists?(:lists)
|
|
4
|
+
create_table :lists do |t|
|
|
5
|
+
t.timestamps
|
|
6
|
+
t.string :email
|
|
7
|
+
t.string :fingerprint
|
|
8
|
+
t.string :gpg_passphrase
|
|
9
|
+
t.string :log_level, default: 'warn'
|
|
10
|
+
t.string :default_mime, default: 'mime'
|
|
11
|
+
t.string :subject_prefix, default: ''
|
|
12
|
+
t.string :subject_prefix_in, default: ''
|
|
13
|
+
t.string :subject_prefix_out, default: ''
|
|
14
|
+
t.string :openpgp_header_preference, default: 'signencrypt'
|
|
15
|
+
t.text :public_footer, default: ''
|
|
16
|
+
t.text :headers_to_meta, default: '["from","to","date",":cc"]'
|
|
17
|
+
t.text :bounces_drop_on_headers, default: '{"x-spam-flag":"yes"}'
|
|
18
|
+
t.text :keywords_admin_only, default: '["unsubscribe", "unsubscribe", "delete-key"]'
|
|
19
|
+
t.text :keywords_admin_notify, default: '["add-key"]'
|
|
20
|
+
t.boolean :send_encrypted_only, default: false
|
|
21
|
+
t.boolean :receive_encrypted_only, default: false
|
|
22
|
+
t.boolean :receive_signed_only, default: false
|
|
23
|
+
t.boolean :receive_authenticated_only, default: false
|
|
24
|
+
t.boolean :receive_from_subscribed_emailaddresses_only, default: false
|
|
25
|
+
t.boolean :receive_admin_only, default: false
|
|
26
|
+
t.boolean :keep_msgid, default: true
|
|
27
|
+
t.boolean :bounces_drop_all, default: false
|
|
28
|
+
t.boolean :bounces_notify_admins, default: true
|
|
29
|
+
t.boolean :include_list_headers, default: true
|
|
30
|
+
t.boolean :include_openpgp_header, default: true
|
|
31
|
+
t.integer :max_message_size_kb, default: 10240
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def down
|
|
36
|
+
drop_table(:lists)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class CreateSubscriptions < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
if ! table_exists?(:subscriptions)
|
|
4
|
+
create_table :subscriptions do |t|
|
|
5
|
+
t.integer :list_id
|
|
6
|
+
t.string :email
|
|
7
|
+
t.string :fingerprint
|
|
8
|
+
t.boolean :admin, default: false
|
|
9
|
+
t.boolean :delivery_disabled, default: false
|
|
10
|
+
t.timestamps
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
add_index :subscriptions, :list_id
|
|
14
|
+
add_index :subscriptions, [:email, :list_id], unique: true
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def down
|
|
19
|
+
drop_table(:subscriptions)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
class ChangeKeywordsAdminOnlyDefaults < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
change_column_default :lists, :keywords_admin_only, "[\"subscribe\", \"unsubscribe\", \"delete-key\"]"
|
|
4
|
+
end
|
|
5
|
+
def down
|
|
6
|
+
change_column_default :lists, :keywords_admin_only, "[\"unsubscribe\", \"unsubscribe\", \"delete-key\"]"
|
|
7
|
+
end
|
|
8
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class AddForwardAllIncomingToAdmins < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
if ! column_exists?(:lists, :forward_all_incoming_to_admins)
|
|
4
|
+
add_column :lists, :forward_all_incoming_to_admins, :boolean, default: false
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def down
|
|
9
|
+
remove_column(:lists, :forward_all_incoming_to_admins)
|
|
10
|
+
end
|
|
11
|
+
end
|
data/db/migrate/201508261723_rename_delivery_disabled_to_delivery_enabled_and_change_default.rb
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class RenameDeliveryDisabledToDeliveryEnabledAndChangeDefault < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
if column_exists?(:subscriptions, :delivery_disabled)
|
|
4
|
+
rename_column :subscriptions, :delivery_disabled, :delivery_enabled
|
|
5
|
+
change_column_default :subscriptions, :delivery_enabled, true
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def down
|
|
10
|
+
rename_column :subscriptions, :delivery_enabled, :delivery_disabled
|
|
11
|
+
change_column_default :subscriptions, :delivery_disabled, false
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
data/db/schema.rb
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# This file is auto-generated from the current state of the database. Instead
|
|
3
|
+
# of editing this file, please use the migrations feature of Active Record to
|
|
4
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
|
5
|
+
#
|
|
6
|
+
# Note that this schema.rb definition is the authoritative source for your
|
|
7
|
+
# database schema. If you need to create the application database on another
|
|
8
|
+
# system, you should be using db:schema:load, not running all the migrations
|
|
9
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
|
10
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
|
11
|
+
#
|
|
12
|
+
# It's strongly recommended that you check this file into your version control system.
|
|
13
|
+
|
|
14
|
+
ActiveRecord::Schema.define(version: 20170713215059) do
|
|
15
|
+
|
|
16
|
+
create_table "lists", force: :cascade do |t|
|
|
17
|
+
t.datetime "created_at"
|
|
18
|
+
t.datetime "updated_at"
|
|
19
|
+
t.string "email", limit: 255
|
|
20
|
+
t.string "fingerprint", limit: 255
|
|
21
|
+
t.string "log_level", limit: 255, default: "warn"
|
|
22
|
+
t.string "subject_prefix", limit: 255, default: ""
|
|
23
|
+
t.string "subject_prefix_in", limit: 255, default: ""
|
|
24
|
+
t.string "subject_prefix_out", limit: 255, default: ""
|
|
25
|
+
t.string "openpgp_header_preference", limit: 255, default: "signencrypt"
|
|
26
|
+
t.text "public_footer", default: ""
|
|
27
|
+
t.text "headers_to_meta", default: "[\"from\", \"to\", \"date\", \"cc\"]"
|
|
28
|
+
t.text "bounces_drop_on_headers", default: "{\"x-spam-flag\":\"yes\"}"
|
|
29
|
+
t.text "keywords_admin_only", default: "[\"subscribe\", \"unsubscribe\", \"delete-key\"]"
|
|
30
|
+
t.text "keywords_admin_notify", default: "[\"add-key\"]"
|
|
31
|
+
t.boolean "send_encrypted_only", default: true
|
|
32
|
+
t.boolean "receive_encrypted_only", default: false
|
|
33
|
+
t.boolean "receive_signed_only", default: false
|
|
34
|
+
t.boolean "receive_authenticated_only", default: false
|
|
35
|
+
t.boolean "receive_from_subscribed_emailaddresses_only", default: false
|
|
36
|
+
t.boolean "receive_admin_only", default: false
|
|
37
|
+
t.boolean "keep_msgid", default: true
|
|
38
|
+
t.boolean "bounces_drop_all", default: false
|
|
39
|
+
t.boolean "bounces_notify_admins", default: true
|
|
40
|
+
t.boolean "include_list_headers", default: true
|
|
41
|
+
t.boolean "include_openpgp_header", default: true
|
|
42
|
+
t.integer "max_message_size_kb", default: 10240
|
|
43
|
+
t.string "language", limit: 255, default: "en"
|
|
44
|
+
t.boolean "forward_all_incoming_to_admins", default: false
|
|
45
|
+
t.integer "logfiles_to_keep", default: 2
|
|
46
|
+
t.text "internal_footer", default: ""
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
create_table "subscriptions", force: :cascade do |t|
|
|
50
|
+
t.integer "list_id"
|
|
51
|
+
t.string "email", limit: 255
|
|
52
|
+
t.string "fingerprint", limit: 255
|
|
53
|
+
t.boolean "admin", default: false
|
|
54
|
+
t.boolean "delivery_enabled", default: true
|
|
55
|
+
t.datetime "created_at"
|
|
56
|
+
t.datetime "updated_at"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
add_index "subscriptions", ["email", "list_id"], name: "index_subscriptions_on_email_and_list_id", unique: true
|
|
60
|
+
add_index "subscriptions", ["list_id"], name: "index_subscriptions_on_list_id"
|
|
61
|
+
|
|
62
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
### BEGIN INIT INFO
|
|
4
|
+
# Provides: schleuder-api-daemon
|
|
5
|
+
# Required-Start: $local_fs $remote_fs $network $syslog
|
|
6
|
+
# Required-Stop: $local_fs $remote_fs $network $syslog
|
|
7
|
+
# Default-Start: 2 3 4 5
|
|
8
|
+
# Default-Stop: 0 1 6
|
|
9
|
+
# Short-Description: Schleuder API daemon
|
|
10
|
+
# Description: Schleuder API daemon — provides access for schleuder-cli and schleuder-web
|
|
11
|
+
### END INIT INFO
|
|
12
|
+
|
|
13
|
+
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
14
|
+
|
|
15
|
+
. /lib/init/vars.sh
|
|
16
|
+
|
|
17
|
+
. /lib/lsb/init-functions
|
|
18
|
+
|
|
19
|
+
NAME=schleuder-api-daemon
|
|
20
|
+
DAEMON=/usr/local/bin/schleuder-api-daemon
|
|
21
|
+
DESC="Schleuder API daemon"
|
|
22
|
+
PIDFILE=/var/run/$NAME.pid
|
|
23
|
+
USER=schleuder
|
|
24
|
+
GROUP=schleuder
|
|
25
|
+
|
|
26
|
+
test -x $DAEMON || exit 5
|
|
27
|
+
|
|
28
|
+
start_schleuder_api_daemon() {
|
|
29
|
+
if [ -f "$PIDFILE" ]; then
|
|
30
|
+
echo ""
|
|
31
|
+
log_failure_msg "$DESC is running already, please stop it first"
|
|
32
|
+
exit 1
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
if ! id $USER >/dev/null 2>&1; then
|
|
36
|
+
log_failure_msg "User \"$USER\" does not exist"
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
if ! getent group $GROUP >/dev/null 2>&1; then
|
|
41
|
+
log_failure_msg "Group \"$GROUP\" does not exist"
|
|
42
|
+
exit 1
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
start-stop-daemon --chuid "$USER":"$GROUP" --start --pidfile $PIDFILE --make-pidfile --background --startas $DAEMON -- $NAME
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
stop_schleuder_api_daemon() {
|
|
49
|
+
if [ -f "$PIDFILE" ]; then
|
|
50
|
+
start-stop-daemon --stop --retry TERM/10/KILL/5 --pidfile $PIDFILE --quiet --oknodo --pidfile "$PIDFILE"
|
|
51
|
+
rm -f $PIDFILE
|
|
52
|
+
fi
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
status_schleuder_api_daemon() {
|
|
56
|
+
if [ ! -e $PIDFILE ]; then
|
|
57
|
+
status_of_proc "${DAEMON}" "${DESC}"
|
|
58
|
+
else
|
|
59
|
+
status_of_proc -p "${PIDFILE}" "${DAEMON}" "${DESC}"
|
|
60
|
+
fi
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
case "$1" in
|
|
64
|
+
start)
|
|
65
|
+
log_begin_msg "Starting $DESC"
|
|
66
|
+
start_schleuder_api_daemon
|
|
67
|
+
log_end_msg $?
|
|
68
|
+
;;
|
|
69
|
+
stop)
|
|
70
|
+
log_begin_msg "Stopping $DESC"
|
|
71
|
+
stop_schleuder_api_daemon
|
|
72
|
+
log_end_msg $?
|
|
73
|
+
;;
|
|
74
|
+
status)
|
|
75
|
+
status_schleuder_api_daemon
|
|
76
|
+
;;
|
|
77
|
+
restart|reload|force-reload)
|
|
78
|
+
log_begin_msg "Restarting $DESC"
|
|
79
|
+
stop_schleuder_api_daemon
|
|
80
|
+
start_schleuder_api_daemon
|
|
81
|
+
log_end_msg $?
|
|
82
|
+
;;
|
|
83
|
+
*)
|
|
84
|
+
echo "Usage: $0 {start|stop|status|restart|reload|force-reload}"
|
|
85
|
+
exit 1
|
|
86
|
+
;;
|
|
87
|
+
esac
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Setting default values for newly generated lists. Once a list is created it
|
|
2
|
+
# is not affected by these settings but has its own set of options in the
|
|
3
|
+
# database.
|
|
4
|
+
#
|
|
5
|
+
# The configuration format is yaml (http://www.yaml.org).
|
|
6
|
+
#
|
|
7
|
+
# Options are listed with the behaviour encoded in the database schema.
|
|
8
|
+
|
|
9
|
+
# Only send out enrypted emails to subscriptions?
|
|
10
|
+
# (This setting does not affect resend-messages.)
|
|
11
|
+
send_encrypted_only: true
|
|
12
|
+
|
|
13
|
+
# Allow only encrypted emails? If true, any other email will be bounced.
|
|
14
|
+
receive_encrypted_only: false
|
|
15
|
+
|
|
16
|
+
# Allow only emails that are validly signed? If true, any other email will be
|
|
17
|
+
# bounced.
|
|
18
|
+
receive_signed_only: false
|
|
19
|
+
|
|
20
|
+
# Allow only emails that are validly signed by a subscriber's key? If true,
|
|
21
|
+
# any other email will be bounced.
|
|
22
|
+
receive_authenticated_only: false
|
|
23
|
+
|
|
24
|
+
# Allow only emails being sent from subscribed addresses? If true, any other
|
|
25
|
+
# email will be bounced.
|
|
26
|
+
# NOTE: This is a very weak restriction mechanism on which you should not rely,
|
|
27
|
+
# as sending addresses can easily be faked! We recommend you to rather
|
|
28
|
+
# rely on the `receive_authenticated_only` option. Setting the
|
|
29
|
+
# `receive_authenticated_only` option to true, will authenticated senders
|
|
30
|
+
# based on the signature on the mail, which is the strongest
|
|
31
|
+
# authentication mechanism you can get.
|
|
32
|
+
# This option could be useful, if you would like to have a closed
|
|
33
|
+
# mailinglist, but could not yet get all subscribers to properly use GPG.
|
|
34
|
+
receive_from_subscribed_emailaddresses_only: false
|
|
35
|
+
|
|
36
|
+
# Allow only emails that are validly signed by a list-admin's key.
|
|
37
|
+
# This is useful for newsletters, announce or notification lists
|
|
38
|
+
receive_admin_only: false
|
|
39
|
+
|
|
40
|
+
# Which headers to include from the original mail.
|
|
41
|
+
headers_to_meta:
|
|
42
|
+
- from
|
|
43
|
+
- to
|
|
44
|
+
- cc
|
|
45
|
+
- date
|
|
46
|
+
|
|
47
|
+
# Preserve the Message-IDs (In-Reply-To, References) from the incoming email.
|
|
48
|
+
# This setting can lead to information leakage, as replies are connectable
|
|
49
|
+
# and a thread of (encrypted) messages can be built by an eavesdropper.
|
|
50
|
+
keep_msgid: true
|
|
51
|
+
|
|
52
|
+
# Which keywords ("email-commands") should be restricted to list-admins?
|
|
53
|
+
keywords_admin_only:
|
|
54
|
+
- subscribe
|
|
55
|
+
- unsubscribe
|
|
56
|
+
- delete-key
|
|
57
|
+
|
|
58
|
+
# For which keywords should the list-admins receive a notice whenever it
|
|
59
|
+
# triggers a command.
|
|
60
|
+
keywords_admin_notify:
|
|
61
|
+
- add-key
|
|
62
|
+
|
|
63
|
+
# Footer to append to each email that is sent to a subscribed address. Will not
|
|
64
|
+
# be included in messages to non-subscribed addresses.
|
|
65
|
+
internal_footer:
|
|
66
|
+
|
|
67
|
+
# Footer to append to each email that is sent to non-subscribed addresses. Will
|
|
68
|
+
# not be included in messages to subscribed addresses.
|
|
69
|
+
public_footer:
|
|
70
|
+
|
|
71
|
+
# Prefix to be inserted into the subject of every email that is validly signed
|
|
72
|
+
# by a subscribed address.
|
|
73
|
+
subject_prefix:
|
|
74
|
+
|
|
75
|
+
# Prefix to be inserted into the subject of every email that is *not* validly
|
|
76
|
+
# signed by a subscribed address.
|
|
77
|
+
subject_prefix_in:
|
|
78
|
+
|
|
79
|
+
# Prefix to be inserted into the subject of every email that has been
|
|
80
|
+
# resent to a non-subscribed address.
|
|
81
|
+
subject_prefix_out:
|
|
82
|
+
|
|
83
|
+
# Drop any bounces (incoming emails not passing the receive_*_only-rules)?
|
|
84
|
+
bounces_drop_all: false
|
|
85
|
+
|
|
86
|
+
# Drop bounces if they match one of these headers. Must be a hash, keys
|
|
87
|
+
# and values are case insensitive.
|
|
88
|
+
bounces_drop_on_headers:
|
|
89
|
+
x-spam-flag: yes
|
|
90
|
+
|
|
91
|
+
# Send a notice to the list-admins whenever an email is bounced or dropped?
|
|
92
|
+
bounces_notify_admins: true
|
|
93
|
+
|
|
94
|
+
# Include RFC-compliant List-* Headers into emails?
|
|
95
|
+
include_list_headers: true
|
|
96
|
+
|
|
97
|
+
# Include OpenPGP-Header into emails?
|
|
98
|
+
include_openpgp_header: true
|
|
99
|
+
|
|
100
|
+
# Prefered way to receive emails to note in OpenPGP-Header
|
|
101
|
+
# ('sign'|'encrypt'|'signencrypt'|'unprotected'|'none')
|
|
102
|
+
openpgp_header_preference: signencrypt
|
|
103
|
+
|
|
104
|
+
# Maximum size of emails allowed on the list, in kilobyte. All others will be
|
|
105
|
+
# bounced.
|
|
106
|
+
max_message_size_kb: 10240
|
|
107
|
+
|
|
108
|
+
# How verbose to log on the list-level (Notifications will be sent to
|
|
109
|
+
# list-admins)? Error, warn, info, or debug.
|
|
110
|
+
log_level: warn
|
|
111
|
+
|
|
112
|
+
# How many logfiles to keep, including the current one.
|
|
113
|
+
# Logfiles are rotated daily, so 2 means: delete logfiles older than
|
|
114
|
+
# yesterday. Values lower than 1 are ignored.
|
|
115
|
+
logfiles_to_keep: 2
|
|
116
|
+
|
|
117
|
+
# Which language to use for automated replies, error-messages, etc.
|
|
118
|
+
# Available: en, de.
|
|
119
|
+
language: en
|
|
120
|
+
|
|
121
|
+
# Forward a raw copy of all incoming emails to the list-admins?
|
|
122
|
+
# Mainly useful for debugging.
|
|
123
|
+
forward_all_incoming_to_admins: false
|