--- a/Mailman/Gui/General.py +++ b/Mailman/Gui/General.py @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2011 by the Free Software Foundation, Inc. +# Copyright (C) 2001-2018 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -429,13 +429,13 @@ class General(GUIBase): as "the mailbox of the agent responsible for the actual transmission of the message." Mailman replaces this header by default with the list's bounce address. - +
While it is debatable if Mailman is such an agent, setting this header helps directing bounces from some broken MTAs to the right destination. On the other hand, some mail readers show unexpected behaviour if this header is set (like missing addresses in forwarded mails and copies sent to the - bounce address on reply-to-all), so it can be disabled + bounce address on reply-to-all), so it can be disabled here.""")) ) @@ -493,6 +493,14 @@ mlist.info. or not isinstance(val, IntType)): doc.addError(_("""admin_member_chunksize attribute not changed! It must be an integer > 0.""")) + elif property == 'host_name': + try: + Utils.ValidateEmail('user@' + val) + except Errors.EmailAddressError: + doc.addError(_("""host_name attribute not changed! + It must be a valid domain name.""")) + else: + GUIBase._setValue(self, mlist, property, val, doc) else: GUIBase._setValue(self, mlist, property, val, doc) --- a/Mailman/Utils.py +++ b/Mailman/Utils.py @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2011 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2018 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -935,6 +935,7 @@ _badwords = [ '