mirror of
				https://github.com/mail-in-a-box/mailinabox.git
				synced 2025-11-03 19:30:54 +00:00 
			
		
		
		
	Add alias for abuse@
This commit is contained in:
		
							parent
							
								
									3dd5fff110
								
							
						
					
					
						commit
						aedfe62bb0
					
				@ -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:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -392,7 +393,7 @@ v0.02 (September 21, 2014)
 | 
				
			|||||||
* Better logic for determining when to take a full backup.
 | 
					* Better logic for determining when to take a full backup.
 | 
				
			||||||
* Reduce DNS TTL, not that it seems to really matter.
 | 
					* Reduce DNS TTL, not that it seems to really matter.
 | 
				
			||||||
* Add SSHFP DNS records.
 | 
					* Add SSHFP DNS records.
 | 
				
			||||||
* Add an API for setting custom DNS records 
 | 
					* Add an API for setting custom DNS records
 | 
				
			||||||
* Update to ownCloud 7.0.2.
 | 
					* Update to ownCloud 7.0.2.
 | 
				
			||||||
* Some things were broken if the machine had an IPv6 address.
 | 
					* Some things were broken if the machine had an IPv6 address.
 | 
				
			||||||
* Use a dialogs library to ask users questions during setup.
 | 
					* Use a dialogs library to ask users questions during setup.
 | 
				
			||||||
 | 
				
			|||||||
@ -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)
 | 
				
			||||||
 | 
				
			|||||||
@ -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>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user