Re: Approve an email
by Lars Bjørndal
[Eggert]
> Not sure about Fedora, but there seem to be some issues with distribution
> specific packages. Many users have got good results with the virtualenv
> installation described here:
>
> https://docs.mailman3.org/en/latest/install/virtualenv.html
Thank you! I gave it a try. I installed postgresql and postgresql-server, created the databases according to the guide and tried to start mailman. I get this error:
=====
Traceback (most recent call last):
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 3361, in _wrap_pool_connect
return fn()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 325, in connect
return _ConnectionFairy._checkout(self)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 888, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 491, in checkout
rec = pool._do_get()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
raise exception
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 271, in _create_connection
return _ConnectionRecord(self)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 386, in __init__
self.__connect()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 684, in __connect
with util.safe_reraise():
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
raise exception
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 680, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/create.py", line 578, in connect
return dialect.connect(*cargs, **cparams)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/default.py", line 598, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/psycopg2/__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: FATAL: Ident authentication failed for user "mailman"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/mailman3/venv/bin/mailman", line 33, in <module>
sys.exit(load_entry_point('mailman==3.3.7', 'console_scripts', 'mailman')())
File "/opt/mailman3/venv/lib64/python3.10/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/click/core.py", line 1054, in main
with self.make_context(prog_name, args, **extra) as ctx:
File "/opt/mailman3/venv/lib64/python3.10/site-packages/click/core.py", line 920, in make_context
self.parse_args(ctx, args)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/click/core.py", line 1613, in parse_args
rest = super().parse_args(ctx, args)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/click/core.py", line 1378, in parse_args
value, args = param.handle_parse_result(ctx, opts, args)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/click/core.py", line 2360, in handle_parse_result
value = self.process_value(ctx, value)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/click/core.py", line 2322, in process_value
value = self.callback(ctx, self, value)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/mailman/bin/mailman.py", line 95, in initialize_config
initialize(value)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/mailman/core/initialize.py", line 229, in initialize
initialize_2(propagate_logs=propagate_logs)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/mailman/core/initialize.py", line 187, in initialize_2
config.db = getUtility(IDatabaseFactory, utility_name).create()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/mailman/database/factory.py", line 58, in create
SchemaManager(database).setup_database()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/mailman/database/factory.py", line 86, in setup_database
context = MigrationContext.configure(self._database.store.connection())
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/orm/session.py", line 1542, in connection
return self._connection_for_bind(
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/orm/session.py", line 1552, in _connection_for_bind
return self._transaction._connection_for_bind(
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/orm/session.py", line 747, in _connection_for_bind
conn = bind.connect()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/future/engine.py", line 406, in connect
return super(Engine, self).connect()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 3315, in connect
return self._connection_cls(self, close_with_result=close_with_result)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 96, in __init__
else engine.raw_connection()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 3394, in raw_connection
return self._wrap_pool_connect(self.pool.connect, _connection)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 3364, in _wrap_pool_connect
Connection._handle_dbapi_exception_noconnection(
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 2198, in _handle_dbapi_exception_noconnection
util.raise_(
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
raise exception
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 3361, in _wrap_pool_connect
return fn()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 325, in connect
return _ConnectionFairy._checkout(self)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 888, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 491, in checkout
rec = pool._do_get()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
with util.safe_reraise():
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
raise exception
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/impl.py", line 143, in _do_get
return self._create_connection()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 271, in _create_connection
return _ConnectionRecord(self)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 386, in __init__
self.__connect()
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 684, in __connect
with util.safe_reraise():
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
compat.raise_(
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
raise exception
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/pool/base.py", line 680, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/create.py", line 578, in connect
return dialect.connect(*cargs, **cparams)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/sqlalchemy/engine/default.py", line 598, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/opt/mailman3/venv/lib64/python3.10/site-packages/psycopg2/__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: FATAL: Ident authentication failed for user "mailman"
(Background on this error at: https://sqlalche.me/e/14/e3q8)
=====
And here I'm stucked. I have very litle experience with databases, so I don't know how to debug. Any hint?
Thank you
Lars
> Am Montag, 26. Dezember 2022, 21:08:46 CET schrieb Lars Bjørndal:
> > Hi, list!
> >
> > I'm on Fedora 36 with the packages mailman3-3.3.4-6.fc36.noarch and
> > postorius-1.3.6-2.fc36.noarch installed. with the command
> >
> > sudo -u mailman mailman3 create <listname>
> >
> > I was able to create a list.
> >
> > I'm not able to find out how to setup and configure the postorius
> > package. There's no mailman-web command.
> >
> > Hyperkitty will not installed du to a dependency conflict, but I dont
> > need archiving for the list.
> >
> > Here comes my quesitons:
> >
> > - What's the easiest way to approve an email sent to the list?
> >
> > - How can I configure the list to accept messages also from non members?
> >
> > - How can I setup postorius to work on Fedora? I have django-admin, but
> > I'm not sure where to go.
> >
> > Thanks in advance, Lars
> > _______________________________________________
> > Mailman-users mailing list -- mailman-users(a)mailman3.org
> > To unsubscribe send an email to mailman-users-leave(a)mailman3.org
> > https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> > Archived at:
> > https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message
> > /ZDUDQA57QRLF7QD4KPFIZBC6ZIF2FAVP/
> >
> > This message sent to eggert(a)eehmke.de
>
>
>
>
> _______________________________________________
> Mailman-users mailing list -- mailman-users(a)mailman3.org
> To unsubscribe send an email to mailman-users-leave(a)mailman3.org
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> Archived at: https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message…
>
> This message sent to lars(a)lamasti.net
3 years, 2 months
Re: CPU usage when idle
by Stephen J. Turnbull
roughnecks via Mailman-users writes:
> > if you look at this graph you'll notice how my VPS "reacted"
> > after mailman3 install.
Looks right to me. Mailman 3 was designed at a time when it was
reasonable to expect that a serious list host would be actual
hardware, configured pretty much exclusively for the use of the MTA,
an httpd, an RDBMS, and the Mailman suite on at least consumer-grade
hardware (at that time one-core CPU, 4GB RAM, 25+GB HDD). Sooo ...
By default Mailman core will be running about 15 processes, Postorius
about 3, HyperKitty up to about 8 I think, the webserver will be
running a bunch, if your MTA is Postfix that will be running a bunch
of daemons and firing up worker processes whenever there's something
to dov, you'll probably be running a bunch of ancillary daemons for
mail (opendkim, Spamassassin, clamav, Amavis) and your RDBMS will be
running a couple. Mailman's queue runners (about half of its
processes) all wake up frequently and check for work. Janitorial
processes like crond and logrotate will have more to do (even if all
they do is check that there's nothing to do). You'll be responding to
the Internet on multiple ports (most likely all of 22, 25, 80, 443,
and 587, maybe a couple more) which will attract the usual
conglomeration of Internet busybodies and felons unless you're more
diligent than I am about "iptables -A -s x.y.z.w -j DROP" for
miscreant x.y.z.w :-).
Somebody posted a couple months back that they were working on a fork
of Mailman 3 that would use threads rather than processes as much as
possible, but that sounds quite hard (so we're unlikely to do it
ourselves) and I haven't heard anything since. And although that
would definitely help get LOADAVG down, it wouldn't help that much
with %CPU since it doesn't do anything to deal with the busybodies and
miscreants pounding on your open ports.
--
GNU Mailman consultant (installation, migration, customization)
Sirius Open Source https://www.siriusopensource.com/
Software systems consulting in Europe, North America, and Japan
9 months, 1 week
Re: Change the default value for the General Archive Policy
by Mark Sapiro
On 6/23/25 08:03, Markus Grandpré wrote:
> Dear list,
>
> currently, when I create a new mailing list with MM3 the value for
> "Archive policy" is always set to "Public archives". I'd like to change
> the default value for "Archive policy" to "Do not archive this list".
> How can I do this? In Debian 12 I find in
> </usr/lib/python3/dist-packages/postorius/forms/list_forms.py>:
...
> but have no idea how to change the settings here. Your help is very
> appreciated.
Are you creating the list in Postorius. If so, you have a choice for
list style. Currently those choices are:
```
Announce only mailing list style.
Ordinary discussion mailing list style.
Discussion mailing list style with private archives.
```
There is currently no style for a list without archives, but you can
implement one. See the thread at
https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/thread/…
for hints on how to do this with a plugin.
Alternatively, you can do it with a patch like:
```
--- a/src/mailman/styles/default.py
+++ b/src/mailman/styles/default.py
@@ -18,6 +18,7 @@
"""Application of list styles to new and existing lists."""
from mailman.core.i18n import _
+from mailman.interfaces.archiver import ArchivePolicy
from mailman.interfaces.styles import IStyle
from mailman.styles.base import (
Announcement,
@@ -91,3 +92,25 @@ class PrivateDefaultStyle(
Private.apply(self, mailing_list)
Discussion.apply(self, mailing_list)
Moderation.apply(self, mailing_list)
+
+
+@public
+@implementer(IStyle)
+class PublicNoArchiveStyle(
+
+ Identity, BasicOperation, Bounces, Public, Discussion, Moderation):
+
+ """The legacy default style with no archives."""
+
+ name = 'legacy-default-no-archive'
+ description = _('Ordinary discussion mailing list style with no
archive.')
+
+ def apply(self, mailing_list):
+ """See `IStyle`."""
+ Identity.apply(self, mailing_list)
+ BasicOperation.apply(self, mailing_list)
+ Bounces.apply(self, mailing_list)
+ Public.apply(self, mailing_list)
+ Discussion.apply(self, mailing_list)
+ Moderation.apply(self, mailing_list)
+ mailing_list.archive_policy = ArchivePolicy.never
```
If you are creating lists from the command line `mailman create`, there
is a --style-name option to specify the style.
--
Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
8 months, 2 weeks
Re: MM3 Postfix FROM header issue
by eboltz@lhtservices.com
Mark,
Here is my postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
always_add_missing_headers = yes
append_dot_mydomain = no
biff = no
compatibility_level = 2
default_destination_concurrency_limit = 15
default_destination_recipient_limit = 30
header_checks = regexp:/etc/postfix/header_checks
header_size_limit = 409600
inet_interfaces = all
inet_protocols = ipv4
local_recipient_maps = proxy:unix:passwd.byname $alias_maps hash:/var/lib/mailman3/data/postfix_lmtp
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
myhostname = lists.example.com
mynetworks = 127.0.0.0/8 [::fff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relay_domains = hash:/var/lib/mailman3/data/postfix_domains
relayhost = [mail.smtp2go.com]:587
smtp_always_send_ehlo = yes
smtp_sasl_security_options = noanonymous
smtp_tls_CApath = /etc/postfix/o365_smtp_cert.pem
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level = may
transport_maps = hash:/var/lib/mailman3/data/postfix_lmtp
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/var/lib/mailman3/data/postfix_vmap
I think that I may try to start from scratch with postfix, as it doesn't seem to do what I want.
This is what I'm trying to do based off the clients existing MM2 setup, which I'm building MM3 from scratch on an entire new system. I wasn't involved with their old MM2 setup from years ago, so not quite sure how it was fully setup to route emails from the mailman.example.org (virtual domain)
Current client setup:
- MM2 is hosted on a separate system, then relays emails through an on-prem SMTP relay (physical server)
- example.org (their email domain) but routes through mailman.example.org
- They have contacts configured in their existing example.org email system, which route on a 1:1 to their matching mailman.example.org counterparts
New client setup:
- MM2 is hosted on a separate system, but relays emails through either SMTP2GO or O365 (whichever is easiest)
- example.org (their email domain) but will use lists.example.org for the MM3 lists
What would I have to do to ensure that MM3 and postfix (same new server) use the newly created lists.example.org domain, which only exists within Postfix when setting up the Postorius domain and lists?
I want to have it so that whatever the list name is, for example 'Staff(a)lists.example.org' will route through Postfix correctly.
2 years, 2 months
Re: using SSH/TLS with external MTA
by Roland Giesler
On 2024/07/29 16:52, Odhiambo Washington wrote:
>
> On Mon, Jul 29, 2024 at 5:26 PM Roland Giesler via Mailman-users
> <mailman-users(a)mailman3.org> wrote:
>
>
> I added the following to my mailman3-web.py:
>
> EMAIL_USE_SSL = True
> EMAIL_HOST = 'box2.gtahardware.co.za <http://box2.gtahardware.co.za>'
> EMAIL_PORT = '465'
> EMAIL_HOST_USER = 'roland(a)giesler.za.net'
> EMAIL_HOST_PASSWORD = '<redacted>'
>
> and fixed the "DEFAULT_FROM_EMAIL" and the signup email gets sent
> successfully!
>
>
> Can you please share what was logged by mailman3-web during the
> email-sending process?
[pid: 10018|app: 0|req: 3/3] 192.168.131.150 () {48 vars in 966 bytes}
[Mon Jul 29 15:25:33 2024] GET /accounts/confirm-email/ => generated
6638 bytes in 55 msecs (HTTP/1.1 200) 7 headers in 223 bytes (1 switches
on core 0)
[pid: 10018|app: 0|req: 4/4] 192.168.131.150 () {44 vars in 812 bytes}
[Mon Jul 29 15:27:01 2024] GET / => generated 0 bytes in 3 msecs
(HTTP/1.1 301) 8 headers in 264 bytes (1 switches on core 1)
[pid: 10018|app: 0|req: 5/5] 192.168.131.150 () {44 vars in 844 bytes}
[Mon Jul 29 15:27:01 2024] GET /postorius/lists/ => generated 4140 bytes
in 343 msecs (HTTP/1.1 200) 7 headers in 223 bytes (1 switches on core 0)
[pid: 10018|app: 0|req: 6/6] 192.168.131.150 () {46 vars in 942 bytes}
[Mon Jul 29 15:28:55 2024] GET /accounts/login/?next=/postorius/lists/
=> generated 8947 bytes in 42 msecs (HTTP/1.1 200) 8 headers in 391
bytes (1 switches on core 1)
[pid: 10018|app: 0|req: 7/7] 192.168.131.150 () {54 vars in 1104 bytes}
[Mon Jul 29 15:29:07 2024] POST /accounts/login/ => generated 0 bytes in
1067 msecs (HTTP/1.1 302) 10 headers in 559 bytes (1 switches on core 0)
[pid: 10018|app: 0|req: 8/8] 192.168.131.150 () {48 vars in 1132 bytes}
[Mon Jul 29 15:29:08 2024] GET /accounts/confirm-email/ => generated
7190 bytes in 7 msecs (HTTP/1.1 200) 8 headers in 321 bytes (1 switches
on core 1)
>
>
> --
> Best regards,
> Odhiambo WASHINGTON,
> Nairobi,KE
> +254 7 3200 0004/+254 7 2274 3223
> In an Internet failure case, the #1 suspect is a constant: DNS.
> "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-)
> [How to ask smart questions:
> http://www.catb.org/~esr/faqs/smart-questions.html]
1 year, 7 months
Re: user mail not accepted
by Mark Sapiro
On 4/26/21 5:16 AM, Christian Stalberg via Mailman-users wrote:
> I have a user whose moderation rule is 'Accept immediately' yet when they
> send a message for distribution to the list, they only receive it and it is
> not distributed via the list. Logfile entries below. Please advise. Btw I
> have another list on this same instance which is running fine. Thank you.
>
> [26/Apr/2021:12:06:25 +0000] "GET /3.1/lists/ssan.lists.ccalternatives.org
> HTTP/1.1" 200 453 "-" "GNU Mailman REST client v3.3.2"
> [26/Apr/2021:12:06:25 +0000] "POST
> /3.1/members/find?list_id=ssan.lists.ccalternatives.org&subscriber=christian
> %40sewagesludgeactionnetwork.com HTTP/1.1" 200 1257 "-" "GNU Mailman REST
> client v3.3.2"
> [26/Apr/2021:12:06:25 +0000] "PATCH
> /3.1/members/7186cd45bde34d4fa7e7b5ab36b97272 HTTP/1.1" 204 0 "-" "GNU
> Mailman REST client v3.3.2"
> [26/Apr/2021:12:06:26 +0000] "GET /3.1/lists/ssan.lists.ccalternatives.org
> HTTP/1.1" 200 453 "-" "GNU Mailman REST client v3.3.2"
> [26/Apr/2021:12:06:26 +0000] "POST
> /3.1/members/find?list_id=ssan.lists.ccalternatives.org&subscriber=christian
> %40sewagesludgeactionnetwork.com HTTP/1.1" 200 1288 "-" "GNU Mailman REST
> client v3.3.2"
> [26/Apr/2021:12:06:26 +0000] "GET
> /3.1/lists/ssan(a)lists.ccalternatives.org/requests/count?token_owner=moderato
> r HTTP/1.1" 200 73 "-" "GNU Mailman REST client v3.3.2"
> [26/Apr/2021:12:06:26 +0000] "GET
> /3.1/lists/ssan(a)lists.ccalternatives.org/held/count HTTP/1.1" 200 73 "-"
> "GNU Mailman REST client v3.3.2"
> [26/Apr/2021:12:06:26 +0000] "GET
> /3.1/members/7186cd45bde34d4fa7e7b5ab36b97272/preferences HTTP/1.1" 200 295
> "-" "GNU Mailman REST client v3.3.2"
These entries don't tell anything about a post to the list. They are all
from Mailman's REST API relating to Postorius interactions with core.
However the absence of messages like
Apr 26 07:32:39 2021 (17860) ACCEPT: <message_id>
and
Apr 26 07:32:41 2021 (17857) HyperKitty archived message <message_id> to
https://example.com/archives/list/list_adderss/message/message_id_hash/
assuming you are looking at the correct time span, says there wasn't an
accepted list post.
Mailman's smtp.log may have more info, but the complete, raw message
that the user receives may be more helpful.
--
Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
4 years, 10 months
Help with Newbie error -- I think I deleted my server
by William Oliver
I have recently installed mailman3 on a Debian system with Posftix and
Dovecot. I did it directly and did not use the docker setup.
I managed to get it working to the point that I could send mail locally
and outside my domain through mailman and log in as administrator.
I decided to add a domain, but noticed on the form that the server was
called "example.com." Clearly, I thought, I missed a configuration item
here.
I clicked on that, and it took me to a page where I could add servers.
So, I added my real domain (libertyfp.org) It successfully added it,
so I decided that I clearly didn't need "example.com" as a server, and
deleted it using the same page.
Immediately, I got an "internal server error" and have now lost all web
interfaces. I tried restarting the daemons and rebooting the box, to
no avail.
The error message sent to my admin email is shown below.
So... I have a couple of questions:
1) How can I set libertyfp.org as my server by use of a config file?
2) Failing that, how do a add "example.com" back, since I no longer
have the web interface?
I can't believe I did this. It took me a week to get this up and
working, and I destroyed it in ten minutes after it was working.
Any help would be appreciated. I suppose reinstalling will go much more
quickly, since I know the mistakes I made over the past few days, but I
really don't want to do that...
Here's what it sends me:
DoesNotExist at /mailman3/lists/
Site matching query does not exist.
Request Method: GET
Request URL: https://www.libertyfp.org/mailman3/lists/
Django Version: 3.0.14
Python Executable: /opt/mailman/venv/bin/uwsgi
Python Version: 3.9.2
Python Path: ['/etc/mailman3/', '.', '', '/etc/mailman3',
'/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-
dynload', '/opt/mailman/venv/lib/python3.9/site-packages']
Server time: Sat, 25 Dec 2021 04:14:00 +0000
Installed Applications:
['hyperkitty',
'postorius',
'django_mailman3',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'django_gravatar',
'compressor',
'haystack',
'django_extensions',
'django_q',
'allauth',
'allauth.account',
'allauth.socialaccount']
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django_mailman3.middleware.TimezoneMiddleware',
'postorius.middleware.PostoriusMiddleware')
Traceback (most recent call last):
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/mailman/venv/lib/python3.9/site-
packages/postorius/views/list.py", line 978, in list_index
return render(request, template,
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/shortcuts.py", line 19, in render
content = loader.render_to_string(template_name, context, request,
using=using)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/template/base.py", line 169, in render
with context.bind_template(self):
File "/usr/lib/python3.9/contextlib.py", line 117, in __enter__
return next(self.gen)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/template/context.py", line 246, in bind_template
updates.update(processor(self.request))
File "/opt/mailman/venv/lib/python3.9/site-
packages/django_mailman3/context_processors.py", line 32, in common
context["site_name"] = get_current_site(request).name
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/contrib/sites/shortcuts.py", line 13, in
get_current_site
return Site.objects.get_current(request)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/contrib/sites/models.py", line 58, in get_current
return self._get_site_by_id(site_id)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/contrib/sites/models.py", line 30, in _get_site_by_id
site = self.get(pk=site_id)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/opt/mailman/venv/lib/python3.9/site-
packages/django/db/models/query.py", line 415, in get
raise self.model.DoesNotExist(
Exception Type: DoesNotExist at /mailman3/lists/
Exception Value: Site matching query does not exist.
Request information:
USER: AnonymousUser
GET: No GET data
POST: No POST data
FILES: No FILES data
COOKIES:
csrftoken =
'qklMdfLOyqa1TWm0b8nEHMFVBLaa0CgU2DXhSywjpgZMTnCSTNA4MkD4lGLB6z5N'
META:
CSRF_COOKIE =
'qklMdfLOyqa1TWm0b8nEHMFVBLaa0CgU2DXhSywjpgZMTnCSTNA4MkD4lGLB6z5N'
CSRF_COOKIE_USED = True
HTTP_ACCEPT =
'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image
/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.9'
HTTP_CONNECTION = 'close'
HTTP_COOKIE =
'csrftoken=qklMdfLOyqa1TWm0b8nEHMFVBLaa0CgU2DXhSywjpgZMTnCSTNA4MkD4lGLB
6z5N'
HTTP_DNT = '1'
HTTP_HOST = 'www.libertyfp.org'
HTTP_SEC_FETCH_DEST = 'document'
HTTP_SEC_FETCH_MODE = 'navigate'
HTTP_SEC_FETCH_SITE = 'none'
HTTP_SEC_FETCH_USER = '?1'
HTTP_SEC_GPC = '1'
HTTP_UPGRADE_INSECURE_REQUESTS = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36'
HTTP_X_FORWARDED_FOR = '174.212.65.52'
HTTP_X_FORWARDED_HOST = 'www.libertyfp.org'
HTTP_X_FORWARDED_PROTO = 'https'
HTTP_X_FORWARDED_SERVER = 'www.libertyfp.org'
PATH_INFO = '/mailman3/lists/'
QUERY_STRING = ''
REMOTE_ADDR = '127.0.0.1'
REQUEST_METHOD = 'GET'
REQUEST_URI = '/mailman3/lists/'
SCRIPT_NAME = ''
SERVER_NAME = 'libertyfp.org'
SERVER_PORT = '8000'
SERVER_PROTOCOL = 'HTTP/1.0'
uwsgi.core = 0
uwsgi.node = b'libertyfp.org'
uwsgi.version = b'2.0.20'
wsgi.errors = <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
wsgi.file_wrapper = ''
wsgi.input = <uwsgi._Input object at 0x7f8591167d90>
wsgi.multiprocess = True
wsgi.multithread = True
wsgi.run_once = False
wsgi.url_scheme = 'https'
wsgi.version = '(1, 0)'
Settings:
Using settings module settings
ABSOLUTE_URL_OVERRIDES = {}
ACCOUNT_AUTHENTICATION_METHOD = 'username_email'
ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_UNIQUE_EMAIL = True
ADMINS = "(('Mailman Suite Admin', 'fp145(a)libertyfp.org'),)"
ALLOWED_HOSTS = ['localhost', 'www.libertyfp.org', 'libertyfp.org',
'mail.libertyfp.org', 'list.libertyfp.org', '127.0.0.1']
APPEND_SLASH = True
AUTHENTICATION_BACKENDS =
"('django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend')"
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'auth.User'
BASE_DIR = PosixPath('/opt/mailman/web')
CACHES = {'default': {'BACKEND':
'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
COMPRESSORS = {'css': 'compressor.css.CssCompressor', 'js':
'compressor.js.JsCompressor'}
COMPRESS_CACHEABLE_PRECOMPILERS = '()'
COMPRESS_CACHE_BACKEND = 'default'
COMPRESS_CACHE_KEY_FUNCTION = '********************'
COMPRESS_CLEAN_CSS_ARGUMENTS = ''
COMPRESS_CLEAN_CSS_BINARY = 'cleancss'
COMPRESS_CLOSURE_COMPILER_ARGUMENTS = ''
COMPRESS_CLOSURE_COMPILER_BINARY = 'java -jar compiler.jar'
COMPRESS_CSS_HASHING_METHOD = 'mtime'
COMPRESS_DATA_URI_MAX_SIZE = 1024
COMPRESS_DEBUG_TOGGLE = None
COMPRESS_ENABLED = True
COMPRESS_FILTERS = {'css':
['compressor.filters.css_default.CssAbsoluteFilter',
'compressor.filters.cssmin.rCSSMinFilter'], 'js':
['compressor.filters.jsmin.rJSMinFilter']}
COMPRESS_JINJA2_GET_ENVIRONMENT = <function
CompressorConf.JINJA2_GET_ENVIRONMENT at 0x7f859064d670>
COMPRESS_MINT_DELAY = 30
COMPRESS_MTIME_DELAY = 10
COMPRESS_OFFLINE = False
COMPRESS_OFFLINE_CONTEXT = {'STATIC_URL': '/static/'}
COMPRESS_OFFLINE_MANIFEST = 'manifest.json'
COMPRESS_OFFLINE_TIMEOUT = 31536000
COMPRESS_OUTPUT_DIR = 'CACHE'
COMPRESS_PARSER = 'compressor.parser.AutoSelectParser'
COMPRESS_PRECOMPILERS = "(('text/x-scss', 'sassc -t compressed {infile}
{outfile}'), ('text/x-sass', 'sassc -t compressed {infile}
{outfile}'))"
COMPRESS_REBUILD_TIMEOUT = 2592000
COMPRESS_ROOT = '/opt/mailman/web/static'
COMPRESS_STORAGE = 'compressor.storage.CompressorFileStorage'
COMPRESS_TEMPLATE_FILTER_CONTEXT = {'STATIC_URL': '/static/'}
COMPRESS_URL = '/static/'
COMPRESS_URL_PLACEHOLDER = '/__compressor_url_placeholder__/'
COMPRESS_VERBOSE = False
COMPRESS_YUGLIFY_BINARY = 'yuglify'
COMPRESS_YUGLIFY_CSS_ARGUMENTS = '--terminal'
COMPRESS_YUGLIFY_JS_ARGUMENTS = '--terminal'
COMPRESS_YUI_BINARY = 'java -jar yuicompressor.jar'
COMPRESS_YUI_CSS_ARGUMENTS = ''
COMPRESS_YUI_JS_ARGUMENTS = ''
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
CSRF_USE_SESSIONS = False
DATABASES = {'default': {'ENGINE':
'django.db.backends.postgresql_psycopg2', 'NAME': 'mailman', 'USER':
'mailman', 'PASSWORD': '********************', 'HOST': 'localhost',
'PORT': '5432', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True,
'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST':
{'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
DATABASE_ROUTERS = []
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f',
'%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y
%H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S',
'%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y',
'%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B
%Y', '%d %B, %Y']
DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_EXCEPTION_REPORTER_FILTER =
'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'mailman(a)libertyfp.org'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = 'mailman(a)libertyfp.org'
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Django] '
EMAIL_TIMEOUT = None
EMAIL_USE_LOCALTIME = False
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
FILE_CHARSET = 'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS =
['django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = 420
FILE_UPLOAD_TEMP_DIR = None
FILTER_VHOST = False
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
HAYSTACK_CONNECTIONS = {'default': {'ENGINE':
'haystack.backends.whoosh_backend.WhooshEngine', 'PATH':
'/opt/mailman/web/fulltext_index'}}
HYPERKITTY_ENABLE_GRAVATAR = True
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['hyperkitty', 'postorius', 'django_mailman3',
'django.contrib.admin', 'django.contrib.auth',
'django.contrib.contenttypes', 'django.contrib.sessions',
'django.contrib.sites', 'django.contrib.messages',
'django.contrib.staticfiles', 'rest_framework', 'django_gravatar',
'compressor', 'haystack', 'django_extensions', 'django_q', 'allauth',
'allauth.account', 'allauth.socialaccount']
INTERNAL_IPS = []
LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast',
'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be',
'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'),
('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'),
('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en',
'English'), ('en-au', 'Australian English'), ('en-gb', 'British
English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar',
'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx',
'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve',
'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa',
'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'),
('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he',
'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper
Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia',
'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is',
'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka',
'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'),
('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt',
'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml',
'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my',
'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl',
'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa',
'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br',
'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk',
'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'),
('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'),
('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'),
('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur',
'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified
Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE = 'en-us'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_HTTPONLY = False
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LANGUAGE_COOKIE_SAMESITE = None
LANGUAGE_COOKIE_SECURE = False
LOCALE_PATHS = []
LOGGING = {'version': 1, 'disable_existing_loggers': False, 'filters':
{'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}},
'handlers': {'mail_admins': {'level': 'ERROR', 'filters':
['require_debug_false'], 'class':
'django.utils.log.AdminEmailHandler'}, 'file': {'level': 'INFO',
'class': 'logging.handlers.WatchedFileHandler', 'filename':
'/opt/mailman/web/logs/mailmanweb.log', 'formatter': 'verbose'},
'console': {'class': 'logging.StreamHandler', 'formatter': 'simple'}},
'loggers': {'django.request': {'handlers': ['mail_admins', 'file'],
'level': 'ERROR', 'propagate': True}, 'django': {'handlers': ['file'],
'level': 'ERROR', 'propagate': True}, 'hyperkitty': {'handlers':
['file'], 'level': 'DEBUG', 'propagate': True}, 'postorius':
{'handlers': ['console', 'file'], 'level': 'INFO'}}, 'formatters':
{'verbose': {'format': '%(levelname)s %(asctime)s %(process)d %(name)s
%(message)s'}, 'simple': {'format': '%(levelname)s %(message)s'}}}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = 'list_index'
LOGIN_URL = 'account_login'
LOGOUT_REDIRECT_URL = None
LOGOUT_URL = 'account_logout'
MAILMAN_ARCHIVER_FROM = "('127.0.0.1', '::1')"
MAILMAN_ARCHIVER_KEY = '********************'
MAILMAN_REST_API_PASS = '********************'
MAILMAN_REST_API_URL = '********************'
MAILMAN_REST_API_USER = '********************'
MANAGERS = []
MEDIA_ROOT = ''
MEDIA_URL = ''
MESSAGE_STORAGE =
'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS = {40: 'danger'}
MIDDLEWARE = "('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django_mailman3.middleware.TimezoneMiddleware',
'postorius.middleware.PostoriusMiddleware')"
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
POSTORIUS_TEMPLATE_BASE_URL = 'http://localhost:8000'
PREPEND_WWW = False
Q_CLUSTER = {'retry': 360, 'timeout': 300, 'save_limit': 100, 'orm':
'default'}
ROOT_URLCONF = 'mailman_web.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = False
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_PRELOAD = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = None
SECURE_REDIRECT_EXEMPT = []
SECURE_REFERRER_POLICY = None
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = False
SERVER_EMAIL = 'root(a)localhost.local'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SAMESITE = 'Lax'
SESSION_COOKIE_SECURE = False
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER =
'django.contrib.sessions.serializers.PickleSerializer'
SETTINGS_MODULE = 'settings'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SITE_ID = 1
SOCIALACCOUNT_PROVIDERS = {'openid': {'SERVERS': [{'id': 'yahoo',
'name': 'Yahoo', 'openid_url': 'http://me.yahoo.com'}]}, 'google':
{'SCOPE': ['profile', 'email'], 'AUTH_PARAMS': {'access_type':
'online'}}, 'facebook': {'METHOD': 'oauth2', 'SCOPE': ['email'],
'FIELDS': ['email', 'name', 'first_name', 'last_name', 'locale',
'timezone'], 'VERSION': 'v2.4'}}
STATICFILES_DIRS = '()'
STATICFILES_FINDERS =
"('django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder')"
STATICFILES_STORAGE =
'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/opt/mailman/web/static'
STATIC_URL = '/static/'
TEMPLATES = [{'BACKEND':
'django.template.backends.django.DjangoTemplates', 'DIRS': [],
'APP_DIRS': True, 'OPTIONS': {'context_processors':
['django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.template.context_processors.csrf',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django_mailman3.context_processors.common',
'hyperkitty.context_processors.common',
'postorius.context_processors.postorius']}}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
WSGI_APPLICATION = 'mailman_web.wsgi.application'
X_FRAME_OPTIONS = 'DENY'
YEAR_MONTH_FORMAT = 'F Y'
4 years, 2 months
How to store additional information about lists?
by Stephen J. Turnbull
Andreas Barth writes:
> I need to add custom attributes to the mailing lists:
It's a rather different use case, but Systers Mailman contains
extensive modifications including Systers-specific attributes. Might
be a useful example (although I don't know how recently they've merged
from mainline. ISTR the last time this came up the Systers repo had
moved and it wasn't clear where. Try a quick Google and if no joy, I
can probably put you in touch with somebody who has a clone.
> Enhance the boolean public to a tri-state: public, restricted audience
> and private (restricted audience means: some people could subscribe
> themself
I'm not sure tri-state is a good idea. The boolean public controls
visibility of the list in listinfo pages. I'm not sure if combining
that with who-can-subscribe logic is safe, and there are pending RFEs
to change the visibility logic, which might cause you annoyance at
upgrade. I also am not sure it's a *bad* idea :-), although I suspect
if we were to add the feature to our distribution, we'd probably
implement as a per-list check for permission (this could be a list of
Users, a list of Addresses, or a function to be called with one or the
other).
> - of course this could also be implemented as a second boolean that
> e.g. splits "not public" into "restricted audience" and "private"
> (means: nothing goes wrong for code that doesn't know this
> difference).
Exactly my concern.
> Any hints how to do that best? Is it possible to store custom
> attributes, or should that be stored elsewhere?
No, I don't think there's provision for custom attributes in core. Of
course you could change the database schema, but you'd have to provide
a migration for that. Migrations for somebody else's custom
attributes being a hard thing to automate on our side, we don't
provide for them.
Does this need to be implemented in core (eg, because restricted
audience users would subscribe by mail), or could you get away with a
modification to Postorius only?
4 years, 9 months
Re: Mailman Core 3.2.2 is now out
by Abhilash Raj
Danil Smirnov wrote:
> Hi Abhilash,
>
> Docker builds are failing for the last few days so we don't have this
> update in the images:
> https://circleci.com/gh/maxking/docker-mailman/tree/master
>
> Could you look at the issue please?
I fixed the daily builds and am currently pushing a new release with
updated versions of Core, Postorius and Hyperkitty's releases.
>
> Best regards,
> Danil Smirnov
>
> вс, 24 мар. 2019 г. в 07:59, Abhilash Raj <maxking(a)asynchronous.in>:
>
> > Hello Everyone,
> >
> > Mailman Core 3.2.2 is released and available on PyPI[1].
> >
> > This is a regular bugfix release and I had to do that to fix a version
> > constraint
> > which pulled in a pre-release of a dependency (falcon) when installed via
> > pip
> > and caused the default install to break.
> >
> > There are few other changes included in this release, including a big
> > refactor
> > of error reporting in Core's REST API. All the error responses are now
> > correctly
> > formatted as JSON with more information about the error. For example,
> > invalid
> > inputs for Enum data types return the valid options. Other error message
> > are
> > now generated from the input validtor and will be more informative.
> >
> > REST API also accepts input as JSON formatted body, alongside the
> > x-www-form-urlencoded.
> >
> > A full list of changes are available here:
> >
> >
> > https://mailman.readthedocs.io/en/latest/src/mailman/docs/NEWS.html#id1
> >
> > This release supports Python 3.5-3.7.
> >
> > Thanks very much to all the contributors involved in this release.
> >
> >
> > [1]: https://pypi.org/project/mailman/
> > --
> > thanks,
> > Abhilash Raj (maxking)
> > _______________________________________________
> > Mailman-users mailing list -- mailman-users(a)mailman3.org
> > To unsubscribe send an email to mailman-users-leave(a)mailman3.org
> > https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> >
6 years, 10 months
Re: Template Ignored?
by Stephen Daniel
Fixed the POSTORIUS_TEMPLATE_BASE_URL. Doesn't fix the issue.
I've been playing with wget, and no matter what I put, I keep getting a 404
error.
So: this works:
wget -O wget.out --user restadmin --password restpass '
http://localhost:8001/3.1/lists/list.example.com'
but this does not (404 error):
wget -O wget.out --user restadmin --password restpass '
http://localhost:8001/3.1/templates/list/list.example.com/list:user:notice:…
'
Is there a way to list all templates? Or all templates for a list?
On Thu, Feb 17, 2022 at 12:34 PM Stephen Daniel <swd(a)pobox.com> wrote:
> That pulls a 404 error. Thanks for the hint. I will investigate.
>
> On Thu, Feb 17, 2022 at 11:49 AM Mark Sapiro <mark(a)msapiro.net> wrote:
>
>> On 2/17/22 08:04, Stephen Daniel wrote:
>> > Mailman3 people --
>> >
>> > I created a new list, and used postorius to create a template for "
>> > list:user:notice:welcome". I then used the mass subscription feature to
>> > add myself to the list, having checked "pre-confirmed", "pre-approved",
>> and
>> > "pre-verified".
>> >
>> > I received a welcome message that appears to be the default welcome
>> > message. It certainly wasn't what I put into my template.
>> >
>> > Any suggestions on how I get mailman to use my template? Things I
>> might be
>> > doing wrong?
>>
>>
>> What is your setting for POSTORIUS_TEMPLATE_BASE_URL? If you create a
>> full URL by appending
>> `/api/templates/list/list.example.com/list:user:notice:welcome`
>> <http://list.example.com/list:user:notice:welcome> to that
>> where `list.example.com` is the actual list_id of your list, and go to
>> that URL, what do you get?
>>
>> --
>> Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
>> San Francisco Bay Area, California better use your sense - B. Dylan
>> _______________________________________________
>> Mailman-users mailing list -- mailman-users(a)mailman3.org
>> To unsubscribe send an email to mailman-users-leave(a)mailman3.org
>> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
>>
>
4 years