1
0
mirror of https://github.com/mail-in-a-box/mailinabox.git synced 2024-11-26 02:57:04 +00:00

Merge pull request #605 from ariejan/feature/604-add-rfc2142-mail-aliases

Add alias for abuse@
This commit is contained in:
Joshua Tauberer 2015-12-07 15:56:51 -05:00
commit fad69f85fa
3 changed files with 13 additions and 8 deletions

View File

@ -7,6 +7,7 @@ Still In Development
Mail: Mail:
* Updated Roundcube to version 1.1.3. * Updated Roundcube to version 1.1.3.
* Auto-create RFC2142 aliases for abuse@.
Control panel: Control panel:

View File

@ -77,7 +77,7 @@ def prettify_idn_email_address(email):
def is_dcv_address(email): def is_dcv_address(email):
email = email.lower() email = email.lower()
for localpart in ("admin", "administrator", "postmaster", "hostmaster", "webmaster"): for localpart in ("admin", "administrator", "postmaster", "hostmaster", "webmaster", "abuse"):
if email.startswith(localpart+"@") or email.startswith(localpart+"+"): if email.startswith(localpart+"@") or email.startswith(localpart+"+"):
return True return True
return False return False
@ -520,17 +520,21 @@ def get_required_aliases(env):
# email on that domain are the required aliases or a catch-all/domain-forwarder. # email on that domain are the required aliases or a catch-all/domain-forwarder.
real_mail_domains = get_mail_domains(env, real_mail_domains = get_mail_domains(env,
filter_aliases = lambda alias : filter_aliases = lambda alias :
not alias.startswith("postmaster@") and not alias.startswith("admin@") not alias.startswith("postmaster@")
and not alias.startswith("admin@")
and not alias.startswith("abuse@")
and not alias.startswith("@") and not alias.startswith("@")
) )
# Create postmaster@ and admin@ for all domains we serve mail on. # Create postmaster@, admin@ and abuse@ for all domains we serve
# postmaster@ is assumed to exist by our Postfix configuration. admin@ # mail on. postmaster@ is assumed to exist by our Postfix configuration.
# isn't anything, but it might save the user some trouble e.g. when # admin@isn't anything, but it might save the user some trouble e.g. when
# buying an SSL certificate. # buying an SSL certificate.
# abuse@ is part of RFC2142: https://www.ietf.org/rfc/rfc2142.txt
for domain in real_mail_domains: for domain in real_mail_domains:
aliases.add("postmaster@" + domain) aliases.add("postmaster@" + domain)
aliases.add("admin@" + domain) aliases.add("admin@" + domain)
aliases.add("abuse@" + domain)
return aliases return aliases
@ -572,7 +576,7 @@ def kick(env, mail_result=None):
# longer have any other email addresses for. # longer have any other email addresses for.
for address, forwards_to, *_ in existing_alias_records: for address, forwards_to, *_ in existing_alias_records:
user, domain = address.split("@") user, domain = address.split("@")
if user in ("postmaster", "admin") \ if user in ("postmaster", "admin", "abuse") \
and address not in required_aliases \ and address not in required_aliases \
and forwards_to == get_system_administrator(env): and forwards_to == get_system_administrator(env):
remove_mail_alias(address, env, do_kick=False) remove_mail_alias(address, env, do_kick=False)

View File

@ -86,7 +86,7 @@
</tbody> </tbody>
</table> </table>
<p style="margin-top: 1.5em"><small>hostmaster@, postmaster@, and admin@ email addresses are required on some domains.</small></p> <p style="margin-top: 1.5em"><small>hostmaster@, postmaster@, admin@ and abuse@ email addresses are required on some domains.</small></p>
<div style="display: none"> <div style="display: none">
<table> <table>