diff --git a/src/pretix/control/views/mailsetup.py b/src/pretix/control/views/mailsetup.py index da637b785..e095a9a6f 100644 --- a/src/pretix/control/views/mailsetup.py +++ b/src/pretix/control/views/mailsetup.py @@ -73,6 +73,11 @@ def _check_spf_record(not_found_lookup_parts, spf_record, depth): rec_record = get_spf_record(hostname) if rec_record: _check_spf_record(not_found_lookup_parts, rec_record, depth + 1) + elif p.startswith('redirect='): + _, hostname = p.split('=') + rec_record = get_spf_record(hostname) + if rec_record: + _check_spf_record(not_found_lookup_parts, rec_record, depth + 1) def check_spf_record(lookup, spf_record): diff --git a/src/tests/control/test_events.py b/src/tests/control/test_events.py index d6d98a58d..c76bcff29 100644 --- a/src/tests/control/test_events.py +++ b/src/tests/control/test_events.py @@ -587,7 +587,8 @@ class EventsTest(SoupTest): @staticmethod def _fake_spf_record(hostname): return { - 'test.pretix.dev': 'v=spf1 a mx include:level2.pretix.dev ~all', + 'test.pretix.dev': 'v=spf1 redirect=_spf.pretix.dev', + '_spf.pretix.dev': 'v=spf1 a mx include:level2.pretix.dev ~all', 'level2.pretix.dev': 'v=spf1 a mx +include:level3.pretix.dev include:spftest.pretix.dev ' '-include:level4.pretix.dev ~all', 'level3.pretix.dev': 'v=spf1 a mx include:test2.pretix.dev ~all',