Confirmation emails aren't sent to users.
Confirmation emails aren't being sent to users and there's nothing in the logs that make it obvious what's happening.
ERROR 2026-02-12 14:15:11,250 1985547 django.request Internal Server Error: /archives/list/soas@lists.sugarlabs.org/thread/CVAUPR7L6AYTNZXIWHQ263A6ZJUROTRC/ 233825 Traceback (most recent call last): 233826 File "/opt/mailman/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner 233827 response = get_response(request) 233828 File "/opt/mailman/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response 233829 response = wrapped_callback(request, *callback_args, **callback_kwargs) 233830 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/lib/view_helpers.py", line 137, in inner 233831 return func(request, *args, **kwargs) 233832 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/views/thread.py", line 238, in thread_index 233833 return render(request, "hyperkitty/thread.html", context=context) 233834 File "/opt/mailman/venv/lib/python3.10/site-packages/django/shortcuts.py", line 25, in render 233835 content = loader.render_to_string(template_name, context, request, using=using) 233836 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/loader.py", line 62, in render_to_string 233837 return template.render(context, request) 233838 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/backends/django.py", line 107, in render 233839 return self.template.render(context) 233840 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 172, in render 233841 return self._render(context) 233842 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 164, in _render 233843 return self.nodelist.render(context) 233844 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in render 233845 return SafeString("".join([node.render_annotated(context) for node in self])) 233846 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in <listcomp> 233847 return SafeString("".join([node.render_annotated(context) for node in self])) 233848 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 979, in render_annotated 233849 return self.render(context) 233850 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 159, in render 233851 return compiled_parent._render(context) 233852 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 164, in _render 233853 return self.nodelist.render(context) 233854 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in render 233855 return SafeString("".join([node.render_annotated(context) for node in self])) 233856 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in <listcomp> 233857 return SafeString("".join([node.render_annotated(context) for node in self])) 233858 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 979, in render_annotated 233859 return self.render(context) 233860 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 65, in render 233861 result = block.nodelist.render(context) 233862 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in render 233863 return SafeString("".join([node.render_annotated(context) for node in self])) 233864 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in <listcomp> 233865 return SafeString("".join([node.render_annotated(context) for node in self])) 233866 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 979, in render_annotated 233867 return self.render(context) 233868 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 210, in render 233869 return template.render(context) 233870 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 174, in render 233871 return self._render(context) 233872 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 164, in _render 233873 return self.nodelist.render(context) 233874 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in render 233875 return SafeString("".join([node.render_annotated(context) for node in self])) 233876 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1018, in <listcomp> 233877 return SafeString("".join([node.render_annotated(context) for node in self])) 233878 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 979, in render_annotated 233879 return self.render(context) 233880 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 1077, in render 233881 output = self.filter_expression.resolve(context) 233882 File "/opt/mailman/venv/lib/python3.10/site-packages/django/template/base.py", line 750, in resolve 233883 new_obj = func(obj, *arg_vals) 233884 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/templatetags/decorate.py", line 42, in render 233885 return mark_safe(text_renderer(content)) 233886 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/markdown.py", line 120, in __call__ 233887 return self.parse(s)[0] 233888 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/markdown.py", line 93, in parse 233889 self.block.parse(state) 233890 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 458, in parse 233891 end_pos2 = self.parse_method(m, state) 233892 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 216, in parse_method 233893 return func(m, state) 233894 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 369, in parse_block_quote 233895 text, end_pos = self.extract_block_quote(m, state) 233896 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 346, in extract_block_quote 233897 end_pos = self.parse_method(m4, state) 233898 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 216, in parse_method 233899 return func(m, state) 233900 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 388, in parse_list 233901 return parse_list(self, m, state) 233902 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/list_parser.py", line 64, in parse_list 233903 groups = _parse_list_item(block, bullet, groups, token, state, rules) 233904 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/list_parser.py", line 178, in _parse_list_item 233905 block.parse(child, rules) 233906 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/block_parser.py", line 458, in parse 233907 end_pos2 = self.parse_method(m, state) 233908 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 214, in parse_method 233909 assert lastgroup 233910 AssertionError
This is the last error in mailmanweb.log, the errors before that are similar.
Ibiam Chihurumnaya via Mailman-users writes:
Confirmation emails aren't being sent to users and there's nothing in the logs that make it obvious what's happening.
As I explained earlier, this backtrace
233830 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/lib/view_helpers.py", line 137, in inner [...] 233908 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 214, in parse_method 233909 assert lastgroup 233910 AssertionError
is a known issue with mistune, which used by HyperKitty to display messages from the archives.
Whatever is happening with the confirmation messages, it's unrelated to this.
- What confirmation messages are missing? Mailman may ask for confirmation if a user adds an email address via Postorius, if the user asks for a password reset from Postorius, if a user who is not logged in subscribes to a list (either by email or by Postorius), and there may be other cases. Please describe all that apply.
- What makes you think that they are missing? Sometimes users or sites have filters that throw them away, or they may be swallowed by MTAs because of misconfigurations.
- Is your "virgin" runner and "out" runner running? (Usually "ps aux | grep mailman" will list only the processes running under mailman. The full command at the end of the line will tell you the names of the runners each process is handling.)
- Are there messages collecting in the "virgin" or "out" queues?
- Are there messages collecting in the MTA queue (the mailq utility will usually tell you about those)?
- Normally you would see log messages for outgoing confirmations in /opt/mailman/mm/var/logs/smtp.log. You might see errors in mailman.log if Mailman core is requesting the confirmations. If Postorius is requesting the confirmations, I think it would probably be in mailmanweb.log (Django has its own mail-sending facility, those don't go through Mailman core).
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
Stephen J. Turnbull wrote:
Ibiam Chihurumnaya via Mailman-users writes:
Confirmation emails aren't being sent to users and there's nothing in the logs that make it obvious what's happening. As I explained earlier, this backtrace 233830 File "/opt/mailman/venv/lib/python3.10/site-packages/hyperkitty/lib/view_helpers.py", line 137, in inner [...] 233908 File "/opt/mailman/venv/lib/python3.10/site-packages/mistune/core.py", line 214, in parse_method 233909 assert lastgroup 233910 AssertionError is a known issue with mistune, which used by HyperKitty to display messages from the archives. Whatever is happening with the confirmation messages, it's unrelated to this.
Yes, the traceback tells me that. I'd shared as Mark had asked for the log from mailmanweb.
What confirmation messages are missing? Mailman may ask for confirmation if a user adds an email address via Postorius, if the user asks for a password reset from Postorius, if a user who is not logged in subscribes to a list (either by email or by Postorius), and there may be other cases. Please describe all that apply.
I created an admin user and when I try to sign in with that user, I get a page that tells me that a confirmation email has been sent and I should confirm the user.
I created another user with a different email, and I got the same thing, didn't receive the confirmation emails in my inbox.
What makes you think that they are missing? Sometimes users or sites have filters that throw them away, or they may be swallowed by MTAs because of misconfigurations.
I looked at mailman smtp logs, and didn't see any event related to the confirmation emails. The uwsgi logs show the events though.
Is your "virgin" runner and "out" runner running? (Usually "ps aux | grep mailman" will list only the processes running under mailman. The full command at the end of the line will tell you the names of the runners each process is handling.)
Yes, the virgin and out runners are running, output from ps;
mailman 1983940 0.0 1.3 117980 82720 ? Ss Feb05 0:00 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/master -C /etc/mailman3/mailman.cfg mailman 1983951 0.0 1.4 120184 85832 ? S Feb05 2:05 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=archive:0:1 mailman 1983952 0.0 1.4 121268 86564 ? S Feb05 0:44 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=bounces:0:1 mailman 1983953 0.0 1.4 121052 86164 ? S Feb05 2:04 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=command:0:1 mailman 1983954 0.0 1.5 126908 93096 ? S Feb05 5:02 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=in:0:1 mailman 1983955 0.0 1.6 194792 98128 ? Sl Feb05 1:03 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=lmtp:0:1 mailman 1983956 0.0 1.4 124092 90144 ? S Feb05 2:40 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=out:0:1 mailman 1983957 0.0 1.4 122000 87164 ? S Feb05 2:11 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=pipeline:0:1 mailman 1983958 0.0 1.4 122392 87964 ? S Feb05 2:06 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=rest:0:1 mailman 1983988 0.1 1.5 138368 95736 ? S Feb05 13:10 | \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=rest:0:1 mailman 1983989 0.1 1.4 132692 90420 ? S Feb05 13:03 | \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=rest:0:1 mailman 1983959 0.0 1.3 117984 82764 ? S Feb05 0:01 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=retry:0:1 mailman 1983960 0.0 1.5 126932 91712 ? S Feb05 1:17 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=task:0:1 mailman 1983961 0.0 1.4 120932 86232 ? S Feb05 2:10 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=virgin:0:1 mailman 1983962 0.0 1.4 120948 86440 ? S Feb05 2:04 \_ /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/runner -C /etc/mailman3/mailman.cfg --runner=digest:0:1
Are there messages collecting in the "virgin" or "out" queues?
How can I check both queues?
Are there messages collecting in the MTA queue (the mailq utility will usually tell you about those)?
mailq doesn't show anything pertaining to the confirmation email.
Normally you would see log messages for outgoing confirmations in /opt/mailman/mm/var/logs/smtp.log. You might see errors in mailman.log if Mailman core is requesting the confirmations. If Postorius is requesting the confirmations, I think it would probably be in mailmanweb.log (Django has its own mail-sending facility, those don't go through Mailman core).
I assume Postorius is requesting the confirmations as this happens when I try to login to mailmanweb, the smtp logs don't show anything about the confirmation email being sent.
The only place I see something about it is in uwsgi; 3050415 [pid: 1985548|app: 0|req: 518823/979759] 127.0.0.1 () {54 vars in 1197 bytes} [Thu Feb 12 21:52:32 2026] GET /accounts/confirm-email/ => generated 1556 bytes in 48 msecs (HTTP/1.0 200) 9 headers in 359 bytes (1 switches on core 0)
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
On 2/12/26 13:58, Ibiam Chihurumnaya via Mailman-users wrote:
I created an admin user and when I try to sign in with that user, I get a page that tells me that a confirmation email has been sent and I should confirm the user.
I created another user with a different email, and I got the same thing, didn't receive the confirmation emails in my inbox.
Do you mean you are creating these users by adding them as list owner or moderator or are you creating them via the https://example.com/accounts/signup/ page.
I looked at mailman smtp logs, and didn't see any event related to the confirmation emails. The uwsgi logs show the events though.
If this is the latter, it has nothing to do with Mailman core or the smtp log. It is via django-allauth and the mail comes from Django.
The only place I see something about it is in uwsgi; 3050415 [pid: 1985548|app: 0|req: 518823/979759] 127.0.0.1 () {54 vars in 1197 bytes} [Thu Feb 12 21:52:32 2026] GET /accounts/confirm-email/ => generated 1556 bytes in 48 msecs (HTTP/1.0 200) 9 headers in 359 bytes (1 switches on core 0)
OK, this is Django. The default EMAIL_BACKEND from mailman_web/settings/base.py is django.core.mail.backends.smtp.EmailBackend and unless you've changed that or added overrides various other defaults are
EMAIL_HOST = "localhost" EMAIL_PORT = 25 EMAIL_HOST_USER = "" EMAIL_HOST_PASSWORD = "" EMAIL_USE_TLS = False EMAIL_USE_SSL = False EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = None
Are those appropriate? Do you have an outgoing MTA listening on
localhost:25? What's in it's logs?
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mark Sapiro wrote:
On 2/12/26 13:58, Ibiam Chihurumnaya via Mailman-users wrote:
I created an admin user and when I try to sign in with that user, I get a page that tells me that a confirmation email has been sent and I should confirm the user. I created another user with a different email, and I got the same thing, didn't receive the confirmation emails in my inbox. Do you mean you are creating these users by adding them as list owner or moderator or are you creating them via the https://example.com/accounts/signup/ page.
IIRC, I created the admin user using django-admin creatsuperuser, and the other user was through the signup page.
I looked at mailman smtp logs, and didn't see any event related to the confirmation emails. The uwsgi logs show the events though. If this is the latter, it has nothing to do with Mailman core or the smtp log. It is via django-allauth and the mail comes from Django. The only place I see something about it is in uwsgi; 3050415 [pid: 1985548|app: 0|req: 518823/979759] 127.0.0.1 () {54 vars in 1197 bytes} [Thu Feb 12 21:52:32 2026] GET /accounts/confirm-email/ => generated 1556 bytes in 48 msecs (HTTP/1.0 200) 9 headers in 359 bytes (1 switches on core 0) OK, this is Django. The default EMAIL_BACKEND from mailman_web/settings/base.py is django.core.mail.backends.smtp.EmailBackend and unless you've changed that or added overrides various other defaults are EMAIL_HOST = "localhost" EMAIL_PORT = 25 EMAIL_HOST_USER = "" EMAIL_HOST_PASSWORD = "" EMAIL_USE_TLS = False EMAIL_USE_SSL = False EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = None Are those appropriate? Do you have an outgoing MTA listening on localhost:25? What's in it's logs?
I don't have any of those set, didn't realize I needed to have them set, the docs didn't make it obvious too. I also didn't notice them in schema.cfg in mailman.
smtp_port is currently set to 25, and I do have an outgoing MTA listening on localhost:25. Nothing shows up in the MTA logs about this particular email.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Ibiam Chihurumnaya via Mailman-users writes:
Mark Sapiro wrote:
OK, this is Django. The default EMAIL_BACKEND from mailman_web/settings/base.py is django.core.mail.backends.smtp.EmailBackend and unless you've changed that or added overrides various other defaults are EMAIL_HOST = "localhost" EMAIL_PORT = 25 EMAIL_HOST_USER = "" EMAIL_HOST_PASSWORD = "" EMAIL_USE_TLS = False EMAIL_USE_SSL = False EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = None Are those appropriate? Do you have an outgoing MTA listening on localhost:25? What's in it's logs?
I don't have any of those set, didn't realize I needed to have them set, the docs didn't make it obvious too.
Those defaults *are* set in the mailman_web settings files. You can override them in /etc/mailman3/settings.py, but often you don't need to.
I also didn't notice them in schema.cfg in mailman.
This is for Django, whose configuration is in /etc/mailman3/settings.py, with defaults set in the mailmanweb package in your venv's site-package in the files in .../mailman_web/settings/.
smtp_port is currently set to 25, and I do have an outgoing MTA listening on localhost:25.
If Mailman can distribute posts that way, Django should be able to send mail with the default settings.
Nothing shows up in the MTA logs about this particular email.
Not sure what to say about that. I'm not sure Postorius or Django log outgoing mail messages but I think they use the mailmanweb.log file by default if they log mail at all. (This is separate from the MTA logs which should record any connections from localhost and mail submitted.)
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
Stephen J. Turnbull wrote:
Ibiam Chihurumnaya via Mailman-users writes:
OK, this is Django. The default EMAIL_BACKEND from mailman_web/settings/base.py is django.core.mail.backends.smtp.EmailBackend and unless you've changed
Mark Sapiro wrote: that or added overrides various other defaults are EMAIL_HOST = "localhost" EMAIL_PORT = 25 EMAIL_HOST_USER = "" EMAIL_HOST_PASSWORD = "" EMAIL_USE_TLS = False EMAIL_USE_SSL = False EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = None Are those appropriate? Do you have an outgoing MTA listening on localhost:25? What's in it's logs? I don't have any of those set, didn't realize I needed to have them set, the docs didn't make it obvious too. Those defaults *are* set in the mailman_web settings files. You can override them in /etc/mailman3/settings.py, but often you don't need to.
Makes sense, I didn't think I needed to.
Couldn't see them with mailman conf though.
I also didn't notice them in schema.cfg in mailman. This is for Django, whose configuration is in /etc/mailman3/settings.py, with defaults set in the mailmanweb package in your venv's site-package in the files in .../mailman_web/settings/. smtp_port is currently set to 25, and I do have an outgoing MTA listening on localhost:25. If Mailman can distribute posts that way, Django should be able to send mail with the default settings. Nothing shows up in the MTA logs about this particular email. Not sure what to say about that. I'm not sure Postorius or Django log outgoing mail messages but I think they use the mailmanweb.log file by default if they log mail at all. (This is separate from the MTA logs which should record any connections from localhost and mail submitted.)
Is there any way I could get more logs, I had set Debug = True in settings.py a while back, but can't see anything more.
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
On 2/13/26 12:41, Ibiam Chihurumnaya via Mailman-users wrote:
Makes sense, I didn't think I needed to.
Couldn't see them with mailman conf though.
Mailman conf only shows Mailman core settings - defaults and things you set in mailman.cfg. It doesn't know about any Django settings.
To see the Django settings that differ from default values use
django-admin diffsettings
To see all settings with defaults flagged with ### use
django-admin diffsettings --all
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mark Sapiro writes:
To see the Django settings that differ from default values use
django-admin diffsettings
mailman-web diffsettings also works. (As far as I know
mailman-web is effectively an alias for django-admin.)
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
On 2/14/26 01:04, Stephen J. Turnbull wrote:
mailman-web diffsettingsalso works. (As far as I knowmailman-webis effectively an alias for django-admin.)
Actually, in our recommended virtualenv install mailman-web is preferred because django-admin doesn't load /etc/mailman3/settings.py by default.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mark Sapiro wrote:
On 2/14/26 01:04, Stephen J. Turnbull wrote:
mailman-web diffsettings also works. (As far as I know mailman-web is effectively an alias for django-admin.) Actually, in our recommended virtualenv install mailman-web is preferred because django-admin doesn't load /etc/mailman3/settings.py by default.
Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
I mostly use mailman-web for this reason.
On 2/13/26 05:41, Ibiam Chihurumnaya via Mailman-users wrote:
Mark Sapiro wrote:
OK, this is Django. The default EMAIL_BACKEND from mailman_web/settings/base.py is django.core.mail.backends.smtp.EmailBackend and unless you've changed that or added overrides various other defaults are EMAIL_HOST = "localhost" EMAIL_PORT = 25 EMAIL_HOST_USER = "" EMAIL_HOST_PASSWORD = "" EMAIL_USE_TLS = False EMAIL_USE_SSL = False EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = None Are those appropriate? Do you have an outgoing MTA listening on localhost:25? What's in it's logs?
I don't have any of those set, didn't realize I needed to have them set, the docs didn't make it obvious too. I also didn't notice them in schema.cfg in mailman.
You normally don't need to set any of those. The defaults should be fine for a local MTA listening on port 25, however what's in /etc/hosts for localhost. If it's the IPv6 address ::1, I suggest changing it to 127.0.0.1.
smtp_port is currently set to 25, and I do have an outgoing MTA listening on localhost:25. Nothing shows up in the MTA logs about this particular email.
Again, whats the address for localhost in /etc/hosts?
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mark Sapiro wrote:
On 2/13/26 05:41, Ibiam Chihurumnaya via Mailman-users wrote:
Mark Sapiro wrote: OK, this is Django. The default EMAIL_BACKEND from mailman_web/settings/base.py is django.core.mail.backends.smtp.EmailBackend and unless you've changed that or added overrides various other defaults are EMAIL_HOST = "localhost" EMAIL_PORT = 25 EMAIL_HOST_USER = "" EMAIL_HOST_PASSWORD = "" EMAIL_USE_TLS = False EMAIL_USE_SSL = False EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = None Are those appropriate? Do you have an outgoing MTA listening on localhost:25? What's in it's logs? I don't have any of those set, didn't realize I needed to have them set, the docs didn't make it obvious too. I also didn't notice them in schema.cfg in mailman. You normally don't need to set any of those. The defaults should be fine for a local MTA listening on port 25, however what's in /etc/hosts for localhost. If it's the IPv6 address ::1, I suggest changing it to 127.0.0.1.
Yes, I did change it after you'd said so in the other thread.
smtp_port is currently set to 25, and I do have an outgoing MTA listening on localhost:25. Nothing shows up in the MTA logs about this particular email. Again, whats the address for localhost in /etc/hosts?
I changed it to 127.0.0.1 after you said so in the last thread.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
On 2/13/26 12:25, Ibiam Chihurumnaya via Mailman-users wrote:
Mark Sapiro wrote:
You normally don't need to set any of those. The defaults should be fine for a local MTA listening on port 25, however what's in /etc/hosts for localhost. If it's the IPv6 address ::1, I suggest changing it to 127.0.0.1.
Yes, I did change it after you'd said so in the other thread.
In that case I can't explain why something about the confirmation mail doesn't show up in the MTA's log.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mark Sapiro wrote:
On 2/13/26 12:25, Ibiam Chihurumnaya via Mailman-users wrote:
Mark Sapiro wrote: You normally don't need to set any of those. The defaults should be fine for a local MTA listening on port 25, however what's in /etc/hosts for localhost. If it's the IPv6 address ::1, I suggest changing it to 127.0.0.1. Yes, I did change it after you'd said so in the other thread. In that case I can't explain why something about the confirmation mail doesn't show up in the MTA's log.
Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Is there anything in the uwsgi-error logs that'll indicate an issue with this?
I just tried again and I didn't receive the confirmation, I registered a new user.
The logs also don't show anything about this, except the uwsgi log which shows the event.
I'd also like to know how I can disable message approval for an email, I don't want to approve some messages.
These emails are already members of the list and yet they need approval because "Message has implicit destination".
You are Hijacking threads again. Please compose a new message with a new subject, not a reply, when you post a new topic.
On 2/12/26 14:01, Ibiam Chihurumnaya via Mailman-users wrote:
I'd also like to know how I can disable message approval for an email, I don't want to approve some messages.
These emails are already members of the list and yet they need approval because "Message has implicit destination".
You can set their moderation action to Accept. This will bypass all the following checks for that member.
Message contains administrivia Message has implicit destination Message has more than {} recipients The message is larger than the {} KB maximum size Post to a moderated newsgroup gateway Message has no subject Message has a digest subject Message quotes digest boilerplate Header "{}" matched a bounce_matching_header line
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mark Sapiro wrote:
You are Hijacking threads again. Please compose a new message with a new subject, not a reply, when you post a new topic.
My apologies, won't happen again.
On 2/12/26 14:01, Ibiam Chihurumnaya via Mailman-users wrote:
I'd also like to know how I can disable message approval for an email, I don't want to approve some messages. These emails are already members of the list and yet they need approval because "Message has implicit destination". You can set their moderation action to Accept. This will bypass all the following checks for that member. Message contains administrivia Message has implicit destination Message has more than {} recipients The message is larger than the {} KB maximum size Post to a moderated newsgroup gateway Message has no subject Message has a digest subject Message quotes digest boilerplate Header "{}" matched a bounce_matching_header line
Done this, thank you!
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Ibiam Chihurumnaya via Mailman-users writes:
These emails are already members of the list and yet they need approval because "Message has implicit destination".
This means human subscribers are intentionally BCCing the list, or robots aren't providing the addresee headers.
From the list's point of view, the safest thing to do is say "don't do that" or "fix the robot". If there is a reason for that behavior, then go ahead and set those member addresses to "accept" instead of "default processing", as Mark explains.
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
Stephen J. Turnbull wrote:
These emails are already members of the list and yet they need approval because "Message has implicit destination". This means human subscribers are intentionally BCCing the list, or robots aren't providing the addresee headers. From the list's point of view, the safest thing to do is say "don't do
Ibiam Chihurumnaya via Mailman-users writes: that" or "fix the robot". If there is a reason for that behavior, then go ahead and set those member addresses to "accept" instead of "default processing", as Mark explains.
I'm not sure there's a reason for the behaviour, from my understanding other servers send logs to the list, I don't know how they were configured to do so, might be an issue from that.
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
participants (3)
-
Ibiam Chihurumnaya -
Mark Sapiro -
Stephen J. Turnbull