Re: Importing mbox files into archive defect with lines with From
by Alex Schuilenburg
Hi Stephen
On 19/09/2023 19:59, Stephen J. Turnbull wrote:
> Did you intend to send this to me only?
Nope, apologies. I'm happy to add the list back in - I thought I hit
reply-to-list.
> Alex Schuilenburg writes:
>
> > Yes, I retested with from the git head as well. Same result. It
> > sees the line
> >
> > From 1st April 2019, our turnover has exceeded the threshold for
> >
> > as the start of a new message and reports no anomolies although
> > there is clearly one.
>
> If there is an empty line preceding that one, and the "F" is in the
> first column (no marginal whitespace), that is considered correct
> behavior for processing an mbox file.
As an email separator agreed, provided the body has all "First "
(preceded by a blank line and nothing preceding on the same line)
suitably escaped.
> If you don't like it, don't use the mbox format. The maildir
> message-per-file format is widely supported, and if you want a
> folder-per-file rather than message-per-file format, MMDF is fairly
> widely supported, and does not suffer from the ambiguities of mbox.
> All three (with variations) are supported by recent Python 3.
Understood. My issue is the lists were imported from MM2.1 in 2020 into
MM3.2.1 onto hyperkitty+mariadb/mysql.
So the current installation has no mbox files - archives are stored in a
mysql database.
> > The old MM3 installation I am migrating away from is obviously
> > broken in that its mbox archive when downloaded is not escaped,
>
> That's interesting. I presume that's because HyperKitty saves
> messages in a database rather than as mbox files, and the old mbox
> exporter just flattened and concatenated the messages. Or perhaps
> that also uses mailbox.mbox and old enough versions of that didn't
> From-stuff.
Spot on.
I have to move the lists onto a new Debian 12 server using the native
mailman 3.3.8 & mailman-web 0+20200530-2 packages. I tried dropping in
the old mailman3 database under the new software but that did not work.
Instead I manually imported the old mailman3 data directly into the new
mailman3 database as, after inspections, there were no new tables and
only a couple of additional fields which have suitable defaults. So
dumped the mailman3 data with
mysqldump --no-create-info --no-create-db --disable-keys
--complete-insert --ignore-table=mailman3.alembic_version mailman3
and simply imported the dump into the new schema. OK so far. The lists
showed up in postorius, obviously without archives in hyperkitty.
> The normal way to upgrade a HyperKitty archive is to do nothing, just
> upgrade the software. I guess you moved to a new host and deleted the
> database? The preferred way is to dump the database to SQL, and then
> load it in to the new database directly rather than downloading the
> mbox files and importing. No ambiguity and much faster.
Thats what I thought initially, but that failed as per
https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message….
As my old installation appears to have the django_migrations table
inconsistent with the state of the database, and Debian have been
unresponsive so far.
Unfortunately the same mailman3-style manual import of mailman3web from
old mailman3web db into the new db was not possible. There were
additional tables and fields that needed values rather than defaults.
Instead I opted to download the mbox exports from the old installation
via the web interface and import them into the new installation for
expediency.This is where I was when I posted the message.
However, the old installation's mbox archive export (from the database)
was problematic (e.g. 5min timeout) but after getting around those
issues I ended up with some broken mbox files (e.g. the "From 1st April
..." line within a message, resulting in hyperkitty_import failures).
> > although I tested downloading this thread archive and it is clearly
> > escaped. Unfortunately I cannot tell if hyperkitty_import works
> > using the git head since I am restricted to using the version
> > provided with Debian 12.
>
> In July it worked for me on a site with 5300 archived lists. I assume
> some of them had From-stuffed lines. Can't be sure, most of the posts
> are machine-generated, but lines beginning with "From " are pretty
> common in natural English.
I'd be surprised if there were not any. I have 2003 lists and several
occurrences.
>
> > There are indeed two versions though of mailbox.py on the VM:
> >
> > /usr/lib/python3/dist-packages/mailman/utilities/mailbox.py: from
> > mailman3 (3.3.8-2~deb12u1)
> > /usr/lib/python3.11/mailbox.py from libpython3.11-stdlib (3.11.2-6)
>
> The first applies one small change to the second (a so-called
> "monkey-patch") for use by Mailman core. It should only be visible
> to Python by the name "mailman.utilities.mailbox". The HyperKitty
> utilities import the name "mailbox". If overwriting the first with
> the second changes HyperKitty's behavior, something is wrong with
> sys.path.
Then I guess that is the case in Debian 12.
>
> > the latter of which appears far more substantial , so I dropped
> > that module over the former and reran hyperkitty_import over the
> > '>' escaped mbox, and while it did import without error, it did
> > leave the escape in place (i.e. the 'From ...' was quoted when
> > viewed).
>
> This is considered correct behavior. It is not possible to determine
> whether the escape was in the original, or added by a receiving MTA.
> Better to leave it.
I thought that ">From " would be escaped to ">>From ", and so on, so the
escape could easily be reversed when imported. I tested exports from the
mailman-users lists and lines beginning "From " (preceded by a blank
line) are escaped to ">From ", so incorrectly figured this would be
unescaped by hyperkitty_import. After all, I would expect that an export
of the archive to mbox, followed by a delete of the archive, followed by
a hyperkitty_import of the archive, should leave you at the same place.
Not with ">From " escapes in the new archives. In fact I also had a
number of messages with "Message-ID: <>" and worse: all messages with
attachments had the text/plain content empty.
So mbox exports from MM 3.2.1 on Debian 10 (using hyperkitty+mysql) are
broken.
>
> > The unescaped mbox import died in the same way.
>
> As expected.
>
> > Anyhow, thanks for your suggestion. For now I can stick with a
> > manual repair and spaced escape of From_.
>
> If the old database is still available, I recommend dumping that and
> loading it into a fresh version of the DBMS.
> ...
Thanks for the pointer. As I had already done the same with mailman3,
so repeated the excercise. The following dump and import worked.
oldhost> mysqldump --no-create-info --no-create-db --disable-keys
--complete-insert mailman3web > mailman3web.sql
newhost> mysql
MariaDB [(none]> use mailman3web
MariaDB [mailman3web]> source mailman3web.sql
Thanks again
-- Alex
1 year, 2 months
Re: config incoming email in my domain cpanel
by tlhackque
On 03-Aug-17 17:14, Rafael Mora wrote:
>
>
> El jue., 3 ago. 2017 a las 16:07, tlhackque via Mailman-users
> (<mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>>)
> escribió:
>
> You've said you're working with labbrands.com <http://labbrands.com>.
>
> labbrands.com <http://labbrands.com> has address 192.185.51.89
> mail.labbrands.com <http://mail.labbrands.com> has address
> 192.185.51.89
> www.labbrands.com <http://www.labbrands.com> is an alias for
> labbrands.com <http://labbrands.com>.
>
> telnet proves that Exim is running on that IP address. Either you're
> running it, or hostgator is redirecting the SMTP ports.
>
> You added:
> lists.labbrands.com <http://lists.labbrands.com> has address
> 190.145.27.66
>
> Presumably that's a different machine.
>
> So that now needs an MX record, and a firewall routing.
>
>
> I added the MX record on our hostgator hosting like this:
> image.png
>
> Is it correct???
>
No. And sending images to the mailing list doesn't get you help.
You set up lists.labbrands.com as a secondary server, not an independent
mail domain. This will cause you serious grief.
You need to get some help from a more suitable list. Setting this up is
not mailman-specific, and getting it right is more than a quick note.
Try the Postfix documentation & mailing lists.
>
>
> And the SPF
> records ... and spam and virus filters, and all the other stuff
> you need
> to setup an independent, public-facing smtp server.
>
> But at least you won't have to relay.
>
> Good luck.
>
> On 03-Aug-17 16:55, Rafael Mora wrote:
> > El jue., 3 ago. 2017 a las 15:49, tlhackque via Mailman-users (<
> > mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>>)
> escribió:
> >
> >> I think you're confused.
> >>
> >> You already have mail.labbrands.com <http://mail.labbrands.com>
> set up as the MX record for
> >> labbrands.com <http://labbrands.com>. And it has an A record
> with the same address as your
> >> webserver.
> >>
> > I'm working with the hostgator mailserver, we are not running a
> local
> > mailserver.
> >
> > As suggested I added an A record like this:
> > [image: image.png]
> >
> > Is it correct? is it redirecting to my Ip so I can redirect it to my
> > postfix/mm3 server?
> >
> >
> >> So if you're getting e-mail on that domain, there's another e-mail
> >> server running on that IP address. You can't have 2 servers
> on port
> >> 25. In that case, as has been noted before, you'll need to setup a
> >> relay in that server, not a firewall redirect. Depending on
> your MTA,
> >> you would need to relay to your internal server. And make sure
> your
> >> firewall setup allows your MTA to do this.
> >>
> >> We can see it's EXIM:
> >>
> >> telnet mail.labbrands.com <http://mail.labbrands.com> 25
> >> Trying 192.185.51.89...
> >> Connected to mail.labbrands.com <http://mail.labbrands.com>
> (192.185.51.89).
> >> Escape character is '^]'.
> >> help
> >> 220-gator4137.hostgator.com
> <http://220-gator4137.hostgator.com> ESMTP Exim 4.87 #1 Thu, 03
> Aug 2017 15:47:48
> >> -0500
> >> 220-We do not authorize the use of this system to transport
> unsolicited,
> >> 220 and/or bulk e-mail.
> >> 214-Commands supported:
> >> 214 AUTH STARTTLS HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP
> >> quit
> >> 221 gator4137.hostgator.com <http://gator4137.hostgator.com>
> closing connection
> >> Connection closed by foreign host.
> >>
> >> Or, consolidate all your e-mail to one server - which is a lot
> easier to
> >> manage unless you have a really big operation. Postfix is
> probably the
> >> right choice, but requires more setup.
> >>
> >> Although Mailman3 configuration is not well documented (as you've
> >> discovered), you may want to get help from someone with more
> general
> >> network and mail experience. You're now into territory that is, as
> >> Simon indicated, not Mailman-specific.
> >>
> >> On 03-Aug-17 16:28, Rafael Mora wrote:
> >>> El jue., 3 ago. 2017 a las 15:26, Mark Sapiro
> (<mark(a)msapiro.net <mailto:mark@msapiro.net>>)
> >> escribió:
> >>>> On 08/03/2017 01:22 PM, Rafael Mora wrote:
> >>>>> El jue., 3 ago. 2017 a las 15:18, Mark Sapiro
> (<mark(a)msapiro.net <mailto:mark@msapiro.net>>)
> >>>> escribió:
> >>>>>> You need to forward port 25 for SMTP mail delivery and if
> you want the
> >>>>>> web UI (Postorius and HyperKitty) accessible from the
> outside, port 80
> >>>>>> for http and/or port 443 for https
> >>>>>> <
> >>>>>>
> >>
> https://www.iana.org/assignments/service-names-port-numbers/service-names-p…
> >>>>>>> .
> >>>>> I mean for incoming mail redirected from my hostgator
> hosting, because
> >>>> when
> >>>>> I suscribe an email address MM3 sends a confirmation email,
> so I have
> >> to
> >>>>> reply to be suscribed to the list.
> >>>> As I said, for mail delivery you need to forward port 25 to
> the Mailman
> >>>> server.
> >>>>
> >>> Ok so I'll redirect in my zentyal firewall the port 25 to my local
> >> centos7
> >>> with postfix and MM3 with IP 192.168.1.42. Thanks Mark.
> >>>
> >>>
> >>>> --
> >>>> Mark Sapiro <mark(a)msapiro.net <mailto:mark@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 <mailto:mailman-users@mailman3.org>
> >>>>
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> >>>>
> >> --
> >> This communication may not represent my employer's views,
> >> if any, on the matters discussed.
> >>
> >> _______________________________________________
> >> Mailman-users mailing list
> >> mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>
> >>
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> >>
>
> --
> This communication may not represent my employer's views,
> if any, on the matters discussed.
>
> _______________________________________________
> Mailman-users mailing list
> mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
>
> --
>
> Atentamente / Best Regards
>
> Ing. Rafael Mora
>
--
This communication may not represent my employer's views,
if any, on the matters discussed.
7 years, 3 months
Re: Member Issue Discovered
by Brian Carpenter
On 10/19/20 11:32 PM, Mark Sapiro wrote:
> On 10/19/20 7:42 PM, Brian Carpenter wrote:
>> On 10/19/20 10:23 PM, Mark Sapiro wrote:
>>> And the import21 created the user and address records for this user.
>> Does the same thing for a new subscriber as well. So there is no pathway
>> to change a real name that is associated with an email address. None.
>> Zilch. Mailman 2 made this so easy and Mailman 3 made it impossible. I
>> will let someone else file the bug report. You don't really think that
>> this is an issue which means it will be years before it is addressed. So
>> I will save me some time. I will learn to live with it.
>
> I didn't say I didn't think it was a real issue. I mostly questioned
> whether a new subscription should change an existing display_name. I
> agree that there should be a way for a user to change the display_name
> associated with her address. I'm not so sure about a list admin.
Respectively, I think you are asking the wrong question here. The real
question is why isn't a display_name being removed when a list
subscriber is unsubscribed. Also list members being forced into a
powerless role by Mailman 3's architecture have no way of changing a
name except through a list owner unless they register an account but
then again, *even that doesn't allow them to change their display name*.
There are also other use cases in which a list owner will want to
identify portions of their membership roster through the use of the
display_name.
Most list members interact with a Mailing list program via email. I know
you understand that. However it is List owners that are the "real" power
users of Mailman and so the admin interface should be designed in such a
way that empowers List owners. Taking the ability away from List owners
(and List members to make), what should be a simple name change, weakens
them.
> And in any case, I'm only one person. I'm not the only one deciding
> what's important and what's not. I only decide what I want to work on,
> not what anyone else thinks is important or wants to work on, so even if
> I think something is not worth doing, that doesn't mean it won't get
> done, and once again for emphasis, I do thing a user should be able to
> change the display name associated with her address(es).
Again I think we are missing something here from this conversation: data
is not being removed. A list subscriber being removed (unsubscribed)
should have their information totally removed. It is not. I now have one
list owner who realizes this and it is not good. How does this not
violate GDPR? This is why I think all the mailman developers ought to
make this issue a high priority. It is creepy to see a name returned out
of nowhere when someone resubscribes to a list without associating a
name with a second resubscribing. I think this puts List owners at a
disadvantage.
>
> Mailman 3 is totally different from Mailman 2.1 in this respect. Mailman
> 2.1 had no concept of user. All it knew was addresses subscribed to
> lists and an address subscribed to one list had no connection to the
> same address subscribed to another list or being an owner or moderator
> of a list.
I think this should still be the case for non-registered list members.
List owners/moderators are different. They HAVE to be registered users
of Postorius/Affinity in order to manage/moderate a list. I wonder what
the majority of list members' scenarios are. Is the majority scenario in
play today the one where most list members are only subscribed to a
single list on a single mailman instance? Or is it the scenario that is
in majority use the one where a single list member is subscribed to
multiple lists? I think that it is important to find out because it
should govern the development process to a certain degree. This single
approach of having registered user account with multiple associated
email accounts elevates one scenario at the expense of the other. It
also assumes/requires that list members have a registered user account
and I can tell you from my experience that is not going to happen. The
majority of mailman 2 users will not registered with a Mailman 3 admin
interface. Some will of course, the majority will not. Maybe the
behavior should and will change but it will take years for that to
happen. So what I am challenging and questioning here is the approach
where such assumptions are being made already that results in the
weakening of list owners.
>
> Mailman 3 does have a concept of user and addresses belonging to a user.
> This complicates things in some ways. In Mailman 2.1 we could have "The
> Boss <user(a)example.com" as a member of one list and "Just a Peon
> <user(a)example.com>" as a member of another list. In Mailman 3 that is
> not possible unless the addresses are tweaked in some way to make them
> different.
Perhaps there is a better approach here to handle single member
w/multiple subscriptions that doesn't hurt the ability of List owners to
serve the needs of list members who do not have a registered user
account and prevents the removal of data when a SINGLE user unsubscribes
from a list.
>
> You don't seem to be concerned about the case where I subscribe to a
> second list with a different display name and am surprised to find my
> display name changed on the first list, but it's something that I have
> to consider.
I am not concerned because I think such cases are in the extreme
minority. Are you saying that people are now going to be using different
real names associated with their other subscriptions as well and that is
going to be so needed it warrants this complex system that you have come
up with? If someone whats to have a different name associated with a
different subscription/email address then I am going to tell them create
a new user account and use a good password management program to keep
track of their logins. Right now I think this minority use case scenario
is negatively impacting other administrative tasks of Mailman,
particularly in the removal of user data when someone unsubscribes from
a list. Its the use of a square peg being forced into a round hole.
Except in this case most of the holes are round but by golly, we are
going to use that square peg regardless!
>
> As far as filing or not filing an issue, issues in the GitLab trackers
> are how we track these things. Threads on mailing lists are appropriate
> for discussion of issues, but if something is going to get changed or
> fixed, an issue in the tracker is the way to ensure it doesn't get put
> aside and forgotten. If this is as important to you as it seems to be,
> please file the issue.
I will but what is disturbing is that you don't think that the
non-removal of user data in cases of unsubscribing is not important or
even an issue.
--
Brian Carpenter
Harmonylists.com
Emwd.com
4 years, 1 month
Template path
by Seth Seeger
Hello everyone,
I’m running Mailman from Docker containers, without much customization. (Postorius 1.3.3, Core 3.3.1, API 3.1, Python 3.8.5). I’ve created a list:user:notice:welcome template, and when I try to confirm a subscription, I get an error.
I followed previous emails on this list which told me to set POSTORIUS_TEMPLATE_BASE_URL in /opt/mailman/web/settings_local.py, but that doesn’t seem to make any difference. (I set it to a different value and the error message didn’t change. I also tried setting it in /opt/mailman/core/settings_local.py to no effect. After each change, I restarted mailman-web and mailman-core containers.)
From within mailman-web and mailman-core containers, I can reach “mailman-web:8000”.
In the webpage, I see: Mailman REST API not available. Please start Mailman core.
In /opt/mailman/core/var/logs/mailman.log, I get:
[17/Sep/2020:16:23:29 +0000] "GET /3.1/lists/xxx.example.com HTTP/1.1" 200 416 "-" "GNU Mailman REST client v3.3.1"
Sep 17 16:23:35 2020 (48) deque:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 426, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 421, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
response.begin()
File "/usr/lib/python3.8/http/client.py", line 307, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 724, in urlopen
retries = retries.increment(
File "/usr/lib/python3.8/site-packages/urllib3/util/retry.py", line 403, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/usr/lib/python3.8/site-packages/urllib3/packages/six.py", line 735, in reraise
raise value
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
httplib_response = self._make_request(
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 428, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 335, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='mailman-web', port=8000): Read timed out. (read timeout=5)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/mailman/app/workflow.py", line 69, in __next__
return step()
File "/usr/lib/python3.8/site-packages/mailman/app/subscriptions.py", line 332, in _step_do_subscription
self.member = self.mlist.subscribe(
File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 85, in wrapper
return function(args[0], config.db.store, *args[1:], **kws)
File "/usr/lib/python3.8/site-packages/mailman/model/mailinglist.py", line 505, in subscribe
notify(SubscriptionEvent(
File "/usr/lib/python3.8/site-packages/zope/event/__init__.py", line 32, in notify
subscriber(event)
File "/usr/lib/python3.8/site-packages/mailman/app/membership.py", line 176, in handle_SubscriptionEvent
send_welcome_message(mlist, member, member.preferred_language)
File "/usr/lib/python3.8/site-packages/mailman/app/notifications.py", line 51, in send_welcome_message
welcome_message = wrap(getUtility(ITemplateLoader).get(
File "/usr/lib/python3.8/site-packages/mailman/model/template.py", line 188, in get
contents = getUtility(ITemplateManager).get(
File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 85, in wrapper
return function(args[0], config.db.store, *args[1:], **kws)
File "/usr/lib/python3.8/site-packages/mailman/model/template.py", line 110, in get
contents = protocols.get(actual_uri, **auth)
File "/usr/lib/python3.8/site-packages/mailman/utilities/protocols.py", line 38, in get
response = requests.get(url, timeout=REQUEST_TIMEOUT, **kws)
File "/usr/lib/python3.8/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python3.8/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3.8/site-packages/requests/adapters.py", line 529, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='mailman-web', port=8000): Read timed out. (read timeout=5)
[2020-09-17 16:23:35 +0000] [48] [ERROR] Socket error processing request.
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 426, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 421, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
response.begin()
File "/usr/lib/python3.8/http/client.py", line 307, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 724, in urlopen
retries = retries.increment(
File "/usr/lib/python3.8/site-packages/urllib3/util/retry.py", line 403, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/usr/lib/python3.8/site-packages/urllib3/packages/six.py", line 735, in reraise
raise value
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
httplib_response = self._make_request(
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 428, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/usr/lib/python3.8/site-packages/urllib3/connectionpool.py", line 335, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='mailman-web', port=8000): Read timed out. (read timeout=5)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 135, in handle
self.handle_request(listener, req, client, addr)
File "/usr/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 191, in handle_request
six.reraise(*sys.exc_info())
File "/usr/lib/python3.8/site-packages/gunicorn/six.py", line 625, in reraise
raise value
File "/usr/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
respiter = self.wsgi(environ, resp.start_response)
File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 50, in wrapper
rtn = function(*args, **kws)
File "/usr/lib/python3.8/site-packages/mailman/rest/wsgiapp.py", line 193, in __call__
return super().__call__(environ, start_response)
File "/usr/lib/python3.8/site-packages/falcon/api.py", line 269, in __call__
responder(req, resp, **params)
File "/usr/lib/python3.8/site-packages/mailman/rest/sub_moderation.py", line 88, in on_post
self._registrar.confirm(self._token)
File "/usr/lib/python3.8/site-packages/mailman/app/subscriptions.py", line 559, in confirm
list(workflow)
File "/usr/lib/python3.8/site-packages/mailman/app/workflow.py", line 69, in __next__
return step()
File "/usr/lib/python3.8/site-packages/mailman/app/subscriptions.py", line 332, in _step_do_subscription
self.member = self.mlist.subscribe(
File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 85, in wrapper
return function(args[0], config.db.store, *args[1:], **kws)
File "/usr/lib/python3.8/site-packages/mailman/model/mailinglist.py", line 505, in subscribe
notify(SubscriptionEvent(
File "/usr/lib/python3.8/site-packages/zope/event/__init__.py", line 32, in notify
subscriber(event)
File "/usr/lib/python3.8/site-packages/mailman/app/membership.py", line 176, in handle_SubscriptionEvent
send_welcome_message(mlist, member, member.preferred_language)
File "/usr/lib/python3.8/site-packages/mailman/app/notifications.py", line 51, in send_welcome_message
welcome_message = wrap(getUtility(ITemplateLoader).get(
File "/usr/lib/python3.8/site-packages/mailman/model/template.py", line 188, in get
contents = getUtility(ITemplateManager).get(
File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 85, in wrapper
return function(args[0], config.db.store, *args[1:], **kws)
File "/usr/lib/python3.8/site-packages/mailman/model/template.py", line 110, in get
contents = protocols.get(actual_uri, **auth)
File "/usr/lib/python3.8/site-packages/mailman/utilities/protocols.py", line 38, in get
response = requests.get(url, timeout=REQUEST_TIMEOUT, **kws)
File "/usr/lib/python3.8/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python3.8/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3.8/site-packages/requests/adapters.py", line 529, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='mailman-web', port=8000): Read timed out. (read timeout=5)
What’s the next step to get templates working?
Thank you,
Seth
4 years, 2 months
Re: Member Issue Discovered
by Brian Carpenter
On 11/4/20 12:04 PM, Stephen J. Turnbull wrote:
> Brian Carpenter writes:
>
> > If you mean if they don't have a Django user account, they can't
> > unsubscribe?
>
> The Django user account is more or less a proxy for the underlying
> Mailman User object, which is what we're concerned with here because
> that's where the data you want deleted is stored.
>
> > I think that is true if they are wanting to unsubscribe via
> > the web interface. But sending an email to
> > listname-unsubscribe@listdomain allows them to unsubscribe without such
> > user authentication. Isn't that correct?
>
> They don't need a Django password or social auth, but they'll still
> have to do the OTK dance. I don't see a reason to distinguish the
> methods of authentication. They all reduce to the OTK dance to prove
> ownership of a mailbox, then optional *delegation* to a password in
> Django or social auth via Gmail etc.
Please speak in simple terms. I am pretty sure my questions were
straightforward but I have a sneaky suspicion you convoluted the issue
with these replies. I feel like my questions were not answered.
>
> I understand that your users don't understand this or care to. Thing
> is, some of *our* users care about the features that this architecture
> enables.
I think everyone should care that data should be removed when there is
an expectation that it is being removed.
>
> > My intent in our changes is to give the list owner and member
> > exactly what they expect: when they explicitly remove a
> > subscription and/or user profile, that they expect their data to be
> > totally removed.
>
> That's fine, and you're welcome to implement that in Affinity. In
> fact, as I understand it, you have already done so. *I'm* not saying
> *nobody* should implement that.
>
> I'm saying that *Mailman* shouldn't, because a lot of subscribers to
> Mailman lists won't like it. The whole point of Mailman 3 is to cater
> to users who want powerful control over their subscriptions. For
> Mailman (Postorius), prompting the user "If you delete this
> subscription, you will have no subscriptions linked to this account.
> Would you like to delete the account as well?" (as I have proposed
> three times now) is the right way to go. This can be implemented via
> email with a second OTK.
Since the account is a django account, I don't see why unsubscribing
from a list has anything to do with that account except removing the
user's prefer settings for a list that they are no longer subscribed to.
For me I made this issue about those list members who unsubscribe from a
single list AND does not have a django user account. This discussion has
expanded to all kinds of scenarios.
Those who are the power users are not in play here. I am sure they
intend to to keep their subscriptions active and their django account
open. I am talking about those who want to leave a list or wants to
remove their django user account permanently.
>
> > I can easily picture a scenario where an older list has a number of
> > list members move to on to other things in life
>
> And I can picture a scenario where they take a summer break and
> reactivate a decade later. I would be *pissed off* if my data got
> deleted in that scenario. (Yes, I've done that in the five year
> variant, if not the full decade.)
Why would you be mad? Am I missing something here? The data that is
being kept are a few fields of data (email address, username, password,
real-name, and some list preferences). Why would anyone expect to have
such inactive accounts kept perpetually? Regardless, I am not talking
about removing accounts/subscriptions without a user's permission. I am
talking about when a user either does it themselves or asks a List Owner
to do so.
>
> > and even abandon their email accounts totally.
>
> Which is a totally different scenario. I deny your "imperative" in
> the former case; inactivity from the point of view of a list owner is
> (usually) not abandonment. I question it in the latter, because
> "abandon" is an inference drawn from lack of activity or bounces,
> either of which could be inadvertant (respectively the "summer break"
> scenario, and separation from an employer).
I worded that poorly. But remember if an email address that no longer
exists (because a list member never unsubscribed from a list and closed
their email provider account anyways) is removed due to bounces (as it
should), that user data still exists. I think that is not good and such
a scenario happens a lot.
>
> > In those cases it is imperative that those list addresses are
> > removed either via bounce processing or list owner intervention and
> > that no legacy data on such members remain.
>
> But how do you propose to identify "legacy data"? In Mailman 3,
> members are *people*, not addresses. Do you really want it to be the
> case that if Albert signs up with albert(a)example.com, and later gets
> fired by example.com, then all his subscriptions get bounce-cancelled,
> and his User profile gets irreversibly trashed? Or some large email
> provider hosting lots of posters decides to suddenly implement some
> spam protection that causes a ton of bounces (as DMARC p=reject did in
> 2014) and hundreds of users have their accounts trashed?
It worked for Mailman 2 right? What happened in those cases? They just
got resubscribed again. As you said, unsubscribing doesn't impact a
django account anyways. So I don't understand your point here. Again I
am talking about the scenario where a user is requesting to be removed
or does the removal themselves and expects their data to be removed.
> You just can't know without asking Albert what he wants done in his
> case and you can be quite sure you're doing the wrong thing in the
> DMARC-like case. In either case, resubscribing is a click per list if
> his data is retained (and Albert needs an OTK confirmation of another
> address). It's an annoying session of duplicating his configuration
> (including passwords and social auth links) if not, and probably some
> months of discovering that a configuration that built up over years
> wasn't accurately reproduced for some lists.
Apples and oranges here. For public lists and a user who does not have a
Affinity/Django account, it is just a click per list. For those who have
a django/Affinity account, well there account should still be there
since they never asked for it to be removed or did not remove it themselves.
Personally I think I am going to implement some sort of backup
generation tool for an Affinity account holder where they can download
their profile/list settings in a json or equivalent format before
account deletion. Then if they wish to create their account, they can
rebuild their profile from that backup.
>
> List owners, of course, can do what they want with their lists. If
> they want to add automation for their subscribers that simplify the
> lives of people who have simple needs, that's not something Mailman
> can, should, or will try to stop. That's *why* I support efforts like
> Affinity, Empathy, and Harmony.
>
> Steve
I personally intend to get into the "power-user" market. That is the #1
reason for creating my UIs. I have that flexibility.
--
Brian Carpenter
Harmonylists.com
Emwd.com
4 years
Re: using SSH/TLS with external MTA
by Odhiambo Washington
On Sun, Jul 28, 2024 at 4:42 PM Roland Giesler via Mailman-users <
mailman-users(a)mailman3.org> wrote:
>
> On 2024/07/28 15:26, Roland Giesler via Mailman-users wrote:
> > On 2024/07/28 00:39, Mark Sapiro wrote:
> >> On 7/27/24 15:16, Roland Giesler via Mailman-users wrote:
> >>>
> >>> The server runs power-mailinabox, which uses Postfix indeed. All my
> >>> mail, and quite a few others' mail is sent from the using SMTP-Auth
> >>> on port 465. Actually, this message is sent via that server too.
> >>> So it's clear to me that MM3 is not authenticating for some reason.
> >>
> >> What do you see in Mailman's smtp.log and in the mail.log on the mail
> >> server?
> >
> > The smtp log is in syslog...
>
> I also see this in /var/log/mailman3/web/mailman-web.log
>
> *** Starting uWSGI 2.0.20-debian (64bit) on [Sun Jul 28 15:27:48 2024] ***
> compiled with version: 11.2.0 on 21 March 2022 11:00:44
> os: Linux-5.15.108-1-pve #1 SMP PVE 5.15.108-2 (2023-07-20T10:06Z)
> nodename: mailman
> machine: x86_64
> clock source: unix
> pcre jit disabled
> detected number of CPU cores: 1
> current working directory: /
> detected binary path: /usr/bin/uwsgi-core
> setgid() to 33
> setuid() to 33
> chdir() to /usr/share/mailman3-web
> your processes number limit is 513922
> your memory page size is 4096 bytes
> detected max file descriptor number: 1024
> lock engine: pthread robust mutexes
> thunder lock: disabled (you can enable it with --thunder-lock)
> uwsgi socket 0 bound to UNIX address /run/mailman3-web/uwsgi.sock fd 4
> Python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0]
> Python main interpreter initialized at 0x561ce813d1d0
> python threads support enabled
> your server socket listen backlog is limited to 100 connections
> your mercy for graceful operations on workers is 60 seconds
> mapped 166752 bytes (162 KB) for 2 cores
> *** Operational MODE: threaded ***
> /usr/lib/python3/dist-packages/django_q/conf.py:139: UserWarning: Retry
> and timeout are misconfigured. Set retry larger than timeout,
> failure to do so will cause the tasks to be retriggered before
> completion.
> See
> https://django-q.readthedocs.io/en/latest/configure.html#retry for
> details.
> warn(
> WSGI app 0 (mountpoint='') ready in 5 seconds on interpreter
> 0x561ce813d1d0 pid: 113 (default app)
> *** uWSGI is running in multiple interpreter mode ***
> spawned uWSGI master process (pid: 113)
> spawned uWSGI worker 1 (pid: 339, cores: 2)
> [uwsgi-daemons] spawning "python3 manage.py qcluster" (uid: 33 gid: 33)
> /usr/lib/python3/dist-packages/django_q/conf.py:139: UserWarning: Retry
> and timeout are misconfigured. Set retry larger than timeout,
> failure to do so will cause the tasks to be retriggered before
> completion.
> See
> https://django-q.readthedocs.io/en/latest/configure.html#retry for
> details.
> warn(
> System check identified some issues:
>
> WARNINGS:
> django_mailman3.MailDomain: (models.W042) Auto-created primary key used
> when not defining a primary key type, by default
> 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> DjangoMailman3Config.default_auto_field attribute to point to a subclass
> of AutoField, e.g. 'django.db.models.BigAutoField'.
> django_mailman3.Profile: (models.W042) Auto-created primary key used
> when not defining a primary key type, by default
> 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> DjangoMailman3Config.default_auto_field attribute to point to a subclass
> of AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.Attachment: (models.W042) Auto-created primary key used when
> not defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.Email: (models.W042) Auto-created primary key used when not
> defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.Favorite: (models.W042) Auto-created primary key used when
> not defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.LastView: (models.W042) Auto-created primary key used when
> not defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.MailingList: (models.W042) Auto-created primary key used when
> not defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.Profile: (models.W042) Auto-created primary key used when not
> defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.Tag: (models.W042) Auto-created primary key used when not
> defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.Tagging: (models.W042) Auto-created primary key used when not
> defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.Thread: (models.W042) Auto-created primary key used when not
> defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.ThreadCategory: (models.W042) Auto-created primary key used
> when not defining a primary key type, by default
> 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> hyperkitty.Vote: (models.W042) Auto-created primary key used when not
> defining a primary key type, by default 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> HyperKittyConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> postorius.EmailTemplate: (models.W042) Auto-created primary key used
> when not defining a primary key type, by default
> 'django.db.models.AutoField'.
> HINT: Configure the DEFAULT_AUTO_FIELD setting or the
> PostoriusConfig.default_auto_field attribute to point to a subclass of
> AutoField, e.g. 'django.db.models.BigAutoField'.
> 15:27:55 [Q] INFO Q Cluster low-vermont-harry-fillet starting.
> 15:27:55 [Q] INFO Process-1 guarding cluster low-vermont-harry-fillet
> 15:27:55 [Q] INFO Q Cluster low-vermont-harry-fillet running.
> 15:27:55 [Q] INFO Process-1:3 pushing tasks at 386
> 15:27:55 [Q] INFO Process-1:2 monitoring at 385
> 15:27:55 [Q] INFO Process-1:1 ready for work at 384
>
# Asynchronous tasks
# https://django-q.readthedocs.io/en/latest/configure.html
Q_CLUSTER = {
'name': 'mailman3-web',
'workers': 8,
'retry': 360,
'timeout': 300,
'save_limit': 100,
'orm': 'default',
}
# Maintain type of autogenerated keys going forward
#
https://docs.djangoproject.com/en/3.2/releases/3.2/#customizing-type-of-aut…
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
--
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]
3 months, 4 weeks
Re: Post installation issues (recipients refused) with Exim4 in a virtual host environment
by Kyriakos Terzopoulos
Please also find below the mailman conf command:
(venv) mailman@hestia:~/venv/bin$ ./mailman conf
[ARC] authserv_id:
[ARC] dkim: yes
[ARC] dmarc: yes
[ARC] domain:
[ARC] enabled: no
[ARC] privkey:
[ARC] selector:
[ARC] sig_headers: From, Sender, Reply-To, Subject, Date, Message-ID, To,
Cc, MIME-Version, Content-Type, Content-Transfer-Encoding, Content-ID,
Content-Description, Resent-Date, Resent-From, Resent-Sender, Resent-To,
Resent-Cc, Resent-Message-ID, In-Reply-To, References, List-Id, List-Help,
List-Unsubscribe, List-Subscribe, List-Post, List-Owner, List-Archive
[ARC] trusted_authserv_ids:
[antispam] header_checks:
[antispam] jump_chain: hold
[archiver.hyperkitty] class: mailman_hyperkitty.Archiver
[archiver.hyperkitty] clobber_date: maybe
[archiver.hyperkitty] clobber_skew: 1d
[archiver.hyperkitty] configuration: /etc/mailman3/mailman-hyperkitty.cfg
[archiver.hyperkitty] enable: yes
[archiver.mail_archive] class: mailman.archiving.mailarchive.MailArchive
[archiver.mail_archive] clobber_date: maybe
[archiver.mail_archive] clobber_skew: 1d
[archiver.mail_archive] configuration: python:mailman.config.mail_archive
[archiver.mail_archive] enable: no
[archiver.mhonarc] class: mailman.archiving.mhonarc.MHonArc
[archiver.mhonarc] clobber_date: maybe
[archiver.mhonarc] clobber_skew: 1d
[archiver.mhonarc] configuration: python:mailman.config.mhonarc
[archiver.mhonarc] enable: no
[archiver.prototype] class: mailman.archiving.prototype.Prototype
[archiver.prototype] clobber_date: maybe
[archiver.prototype] clobber_skew: 1d
[archiver.prototype] configuration: changeme
[archiver.prototype] enable: yes
[bounces] register_bounces_every: 15m
[database] class: mailman.database.postgresql.PostgreSQLDatabase
[database] debug: no
[database] url: postgresql://mailman:XXXXXXXXXX@localhost/mailman
[devmode] enabled: no
[devmode] recipient:
[devmode] testing: no
[devmode] wait: 60s
[digests] mime_digest_keep_headers:
Date From To Cc Subject Message-ID Keywords
In-Reply-To References Content-Type MIME-Version
Content-Transfer-Encoding Precedence Reply-To
Message List-Post
[digests] plain_digest_keep_headers:
Message Date From
Subject To Cc
Message-ID Keywords
Content-Type
[dmarc] cache_lifetime: 7d
[dmarc] org_domain_data_url:
https://publicsuffix.org/list/public_suffix_list.dat
[dmarc] resolver_lifetime: 5s
[dmarc] resolver_timeout: 3s
[language.ar] charset: utf-8
[language.ar] description: Arabic
[language.ar] enabled: yes
[language.ast] charset: utf-8
[language.ast] description: Asturian
[language.ast] enabled: yes
[language.bg] charset: utf-8
[language.bg] description: Bulgarian
[language.bg] enabled: yes
[language.ca] charset: utf-8
[language.ca] description: Catalan
[language.ca] enabled: yes
[language.cs] charset: utf-8
[language.cs] description: Czech
[language.cs] enabled: yes
[language.da] charset: utf-8
[language.da] description: Danish
[language.da] enabled: yes
[language.de] charset: utf-8
[language.de] description: German
[language.de] enabled: yes
[language.el] charset: utf-8
[language.el] description: Greek
[language.el] enabled: yes
[language.en] charset: us-ascii
[language.en] description: English (USA)
[language.en] enabled: yes
[language.es] charset: utf-8
[language.es] description: Spanish
[language.es] enabled: yes
[language.et] charset: utf-8
[language.et] description: Estonian
[language.et] enabled: yes
[language.eu] charset: utf-8
[language.eu] description: Euskara
[language.eu] enabled: yes
[language.fi] charset: utf-8
[language.fi] description: Finnish
[language.fi] enabled: yes
[language.fr] charset: utf-8
[language.fr] description: French
[language.fr] enabled: yes
[language.gl] charset: utf-8
[language.gl] description: Galician
[language.gl] enabled: yes
[language.he] charset: utf-8
[language.he] description: Hebrew
[language.he] enabled: yes
[language.hr] charset: utf-8
[language.hr] description: Croatian
[language.hr] enabled: yes
[language.hu] charset: utf-8
[language.hu] description: Hungarian
[language.hu] enabled: yes
[language.ia] charset: utf-8
[language.ia] description: Interlingua
[language.ia] enabled: yes
[language.it] charset: utf-8
[language.it] description: Italian
[language.it] enabled: yes
[language.ja] charset: utf-8
[language.ja] description: Japanese
[language.ja] enabled: yes
[language.ko] charset: utf-8
[language.ko] description: Korean
[language.ko] enabled: yes
[language.lt] charset: utf-8
[language.lt] description: Lithuanian
[language.lt] enabled: yes
[language.nl] charset: utf-8
[language.nl] description: Dutch
[language.nl] enabled: yes
[language.no] charset: utf-8
[language.no] description: Norwegian
[language.no] enabled: yes
[language.pl] charset: utf-8
[language.pl] description: Polish
[language.pl] enabled: yes
[language.pt] charset: utf-8
[language.pt] description: Portuguese
[language.pt] enabled: yes
[language.pt_BR] charset: utf-8
[language.pt_BR] description: Portuguese (Brazil)
[language.pt_BR] enabled: yes
[language.ro] charset: utf-8
[language.ro] description: Romanian
[language.ro] enabled: yes
[language.ru] charset: utf-8
[language.ru] description: Russian
[language.ru] enabled: yes
[language.sk] charset: utf-8
[language.sk] description: Slovak
[language.sk] enabled: yes
[language.sl] charset: utf-8
[language.sl] description: Slovenian
[language.sl] enabled: yes
[language.sr] charset: utf-8
[language.sr] description: Serbian
[language.sr] enabled: yes
[language.sv] charset: utf-8
[language.sv] description: Swedish
[language.sv] enabled: yes
[language.tr] charset: utf-8
[language.tr] description: Turkish
[language.tr] enabled: yes
[language.uk] charset: utf-8
[language.uk] description: Ukrainian
[language.uk] enabled: yes
[language.vi] charset: utf-8
[language.vi] description: Vietnamese
[language.vi] enabled: yes
[language.zh_CN] charset: utf-8
[language.zh_CN] description: Chinese
[language.zh_CN] enabled: yes
[language.zh_TW] charset: utf-8
[language.zh_TW] description: Chinese (Taiwan)
[language.zh_TW] enabled: yes
[logging.archiver] datefmt: %b %d %H:%M:%S %Y
[logging.archiver] format: %(asctime)s (%(process)d) %(message)s
[logging.archiver] level: info
[logging.archiver] path: mailman.log
[logging.archiver] propagate: no
[logging.bounce] datefmt: %b %d %H:%M:%S %Y
[logging.bounce] format: %(asctime)s (%(process)d) %(message)s
[logging.bounce] level: info
[logging.bounce] path: bounce.log
[logging.bounce] propagate: no
[logging.config] datefmt: %b %d %H:%M:%S %Y
[logging.config] format: %(asctime)s (%(process)d) %(message)s
[logging.config] level: info
[logging.config] path: mailman.log
[logging.config] propagate: no
[logging.database] datefmt: %b %d %H:%M:%S %Y
[logging.database] format: %(asctime)s (%(process)d) %(message)s
[logging.database] level: warn
[logging.database] path: mailman.log
[logging.database] propagate: no
[logging.debug] datefmt: %b %d %H:%M:%S %Y
[logging.debug] format: %(asctime)s (%(process)d) %(message)s
[logging.debug] level: info
[logging.debug] path: debug.log
[logging.debug] propagate: no
[logging.error] datefmt: %b %d %H:%M:%S %Y
[logging.error] format: %(asctime)s (%(process)d) %(message)s
[logging.error] level: info
[logging.error] path: mailman.log
[logging.error] propagate: no
[logging.fromusenet] datefmt: %b %d %H:%M:%S %Y
[logging.fromusenet] format: %(asctime)s (%(process)d) %(message)s
[logging.fromusenet] level: info
[logging.fromusenet] path: mailman.log
[logging.fromusenet] propagate: no
[logging.http] datefmt: %b %d %H:%M:%S %Y
[logging.http] format: %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"
[logging.http] level: info
[logging.http] path: mailman.log
[logging.http] propagate: no
[logging.locks] datefmt: %b %d %H:%M:%S %Y
[logging.locks] format: %(asctime)s (%(process)d) %(message)s
[logging.locks] level: info
[logging.locks] path: mailman.log
[logging.locks] propagate: no
[logging.mischief] datefmt: %b %d %H:%M:%S %Y
[logging.mischief] format: %(asctime)s (%(process)d) %(message)s
[logging.mischief] level: info
[logging.mischief] path: mailman.log
[logging.mischief] propagate: no
[logging.plugins] datefmt: %b %d %H:%M:%S %Y
[logging.plugins] format: %(asctime)s (%(process)d) %(message)s
[logging.plugins] level: info
[logging.plugins] path: plugins.log
[logging.plugins] propagate: no
[logging.root] datefmt: %b %d %H:%M:%S %Y
[logging.root] format: %(asctime)s (%(process)d) %(message)s
[logging.root] level: info
[logging.root] path: mailman.log
[logging.root] propagate: no
[logging.runner] datefmt: %b %d %H:%M:%S %Y
[logging.runner] format: %(asctime)s (%(process)d) %(message)s
[logging.runner] level: info
[logging.runner] path: mailman.log
[logging.runner] propagate: no
[logging.smtp] datefmt: %b %d %H:%M:%S %Y
[logging.smtp] every: $msgid smtp to $listname for $recip recips, completed
in $time seconds
[logging.smtp] failure: $msgid delivery to $recip failed with code
$smtpcode, $smtpmsg
[logging.smtp] format: %(asctime)s (%(process)d) %(message)s
[logging.smtp] level: info
[logging.smtp] path: smtp.log
[logging.smtp] propagate: no
[logging.smtp] refused: $msgid post to $listname from $sender, $size bytes,
$refused failures
[logging.smtp] success: $msgid post to $listname from $sender, $size bytes
[logging.subscribe] datefmt: %b %d %H:%M:%S %Y
[logging.subscribe] format: %(asctime)s (%(process)d) %(message)s
[logging.subscribe] level: info
[logging.subscribe] path: mailman.log
[logging.subscribe] propagate: no
[logging.task] datefmt: %b %d %H:%M:%S %Y
[logging.task] format: %(asctime)s (%(process)d) %(message)s
[logging.task] level: info
[logging.task] path: mailman.log
[logging.task] propagate: no
[logging.vette] datefmt: %b %d %H:%M:%S %Y
[logging.vette] format: %(asctime)s (%(process)d) %(message)s
[logging.vette] level: info
[logging.vette] path: mailman.log
[logging.vette] propagate: no
[mailman] anonymous_list_keep_headers: ^x-mailman- ^x-content-filtered-by:
^x-topics:
^x-ack: ^x-beenthere: ^x-list-administrivia: ^x-spam-
[mailman] cache_life: 7d
[mailman] check_max_size_on_filtered_message: no
[mailman] default_language: en
[mailman] email_commands_max_lines: 10
[mailman] filter_report: no
[mailman] filtered_messages_are_preservable: no
[mailman] hold_digest: no
[mailman] html_to_plain_text_command: /usr/bin/lynx -dump $filename
[mailman] layout: local
[mailman] listname_chars: [-_.0-9a-z]
[mailman] masthead_threshold: 4
[mailman] moderator_request_life: 180d
[mailman] noreply_address: noreply
[mailman] pending_request_life: 3d
[mailman] post_hook:
[mailman] pre_hook:
[mailman] run_tasks_every: 1h
[mailman] sender_headers: from from_ reply-to sender
[mailman] site_owner: kterzopoulos(a)XXXXXX.com
[mta] configuration: python:mailman.config.exim4
[mta] delivery_retry_period: 5d
[mta] incoming: mailman.mta.exim4.LMTP
[mta] lmtp_host: localhost
[mta] lmtp_port: 8024
[mta] max_autoresponses_per_day: 10
[mta] max_delivery_threads: 0
[mta] max_recipients: 500
[mta] max_sessions_per_connection: 0
[mta] outgoing: mailman.mta.deliver.deliver
[mta] remove_dkim_headers: no
[mta] smtp_host: mail.myproject.eu
[mta] smtp_pass:
[mta] smtp_port: 25
[mta] smtp_secure_mode: smtp
[mta] smtp_user:
[mta] smtp_verify_cert: yes
[mta] smtp_verify_hostname: yes
[mta] verp_confirm_format: $address+$cookie
[mta] verp_confirm_regexp: ^(.*<)?(?P<addr>[^+]+?)\+(?P<cookie>[^@]+)@.*$
[mta] verp_confirmations: yes
[mta] verp_delimiter: +
[mta] verp_delivery_interval: 1
[mta] verp_format: ${bounces}+${local}=${domain}
[mta] verp_personalized_deliveries: yes
[mta] verp_probe_format: $bounces+$token@$domain
[mta] verp_probe_regexp: ^(?P<bounces>[^+]+?)\+(?P<token>[^@]+)@.*$
[mta] verp_probes: no
[mta] verp_regexp:
^(?P<bounces>[^+]+?)\+(?P<local>[^=]+)=(?P<domain>[^@]+)@.*$
[nntp] gatenews_every: 5m
[nntp] host:
[nntp] password:
[nntp] port:
[nntp] remove_headers:
nntp-posting-host nntp-posting-date x-trace
x-complaints-to xref date-received posted
posting-version relay-version received
[nntp] rewrite_duplicate_headers:
To X-Original-To
CC X-Original-CC
Content-Transfer-Encoding X-Original-Content-Transfer-Encoding
MIME-Version X-MIME-Version
[nntp] user:
[passwords] configuration: python:mailman.config.passlib
[passwords] password_length: 8
[paths.dev] archive_dir: $var_dir/archives
[paths.dev] bin_dir: $argv
[paths.dev] cache_dir: $var_dir/cache
[paths.dev] data_dir: $var_dir/data
[paths.dev] etc_dir: $var_dir/etc
[paths.dev] ext_dir: $var_dir/ext
[paths.dev] list_data_dir: $var_dir/lists
[paths.dev] lock_dir: $var_dir/locks
[paths.dev] lock_file: $lock_dir/master.lck
[paths.dev] log_dir: $var_dir/logs
[paths.dev] messages_dir: $var_dir/messages
[paths.dev] pid_file: $var_dir/master.pid
[paths.dev] queue_dir: $var_dir/queue
[paths.dev] template_dir: $var_dir/templates
[paths.dev] var_dir: $cfg_file/../..
[paths.fhs] archive_dir: $var_dir/archives
[paths.fhs] bin_dir: /sbin
[paths.fhs] cache_dir: $var_dir/cache
[paths.fhs] data_dir: $var_dir/data
[paths.fhs] etc_dir: /etc
[paths.fhs] ext_dir: /etc/mailman.d
[paths.fhs] list_data_dir: $var_dir/lists
[paths.fhs] lock_dir: /var/lock/mailman
[paths.fhs] lock_file: $lock_dir/master.lck
[paths.fhs] log_dir: /var/log/mailman
[paths.fhs] messages_dir: $var_dir/messages
[paths.fhs] pid_file: /var/run/mailman/master.pid
[paths.fhs] queue_dir: /var/spool/mailman
[paths.fhs] template_dir: $var_dir/templates
[paths.fhs] var_dir: /var/lib/mailman
[paths.here] archive_dir: $var_dir/archives
[paths.here] bin_dir: $argv
[paths.here] cache_dir: $var_dir/cache
[paths.here] data_dir: $var_dir/data
[paths.here] etc_dir: $var_dir/etc
[paths.here] ext_dir: $var_dir/ext
[paths.here] list_data_dir: $var_dir/lists
[paths.here] lock_dir: $var_dir/locks
[paths.here] lock_file: $lock_dir/master.lck
[paths.here] log_dir: $var_dir/logs
[paths.here] messages_dir: $var_dir/messages
[paths.here] pid_file: $var_dir/master.pid
[paths.here] queue_dir: $var_dir/queue
[paths.here] template_dir: $var_dir/templates
[paths.here] var_dir: $cwd/var
[paths.local] archive_dir: $var_dir/archives
[paths.local] bin_dir: $argv
[paths.local] cache_dir: $var_dir/cache
[paths.local] data_dir: $var_dir/data
[paths.local] etc_dir: $var_dir/etc
[paths.local] ext_dir: $var_dir/ext
[paths.local] list_data_dir: $var_dir/lists
[paths.local] lock_dir: $var_dir/locks
[paths.local] lock_file: $lock_dir/master.lck
[paths.local] log_dir: $var_dir/logs
[paths.local] messages_dir: $var_dir/messages
[paths.local] pid_file: $var_dir/master.pid
[paths.local] queue_dir: $var_dir/queue
[paths.local] template_dir: $var_dir/templates
[paths.local] var_dir: /opt/mailman/venv
[plugin.master] class:
[plugin.master] component_package:
[plugin.master] configuration:
[plugin.master] enabled: no
[runner.archive] class: mailman.runners.archive.ArchiveRunner
[runner.archive] instances: 1
[runner.archive] max_restarts: 10
[runner.archive] path: $QUEUE_DIR/$name
[runner.archive] sleep_time: 1s
[runner.archive] start: yes
[runner.bad] class: mailman.runners.fake.BadRunner
[runner.bad] instances: 1
[runner.bad] max_restarts: 10
[runner.bad] path: $QUEUE_DIR/$name
[runner.bad] sleep_time: 1s
[runner.bad] start: no
[runner.bounces] class: mailman.runners.bounce.BounceRunner
[runner.bounces] instances: 1
[runner.bounces] max_restarts: 10
[runner.bounces] path: $QUEUE_DIR/$name
[runner.bounces] sleep_time: 2m
[runner.bounces] start: yes
[runner.command] class: mailman.runners.command.CommandRunner
[runner.command] instances: 1
[runner.command] max_restarts: 10
[runner.command] path: $QUEUE_DIR/$name
[runner.command] sleep_time: 1s
[runner.command] start: yes
[runner.digest] class: mailman.runners.digest.DigestRunner
[runner.digest] instances: 1
[runner.digest] max_restarts: 10
[runner.digest] path: $QUEUE_DIR/$name
[runner.digest] sleep_time: 1s
[runner.digest] start: yes
[runner.in] class: mailman.runners.incoming.IncomingRunner
[runner.in] instances: 1
[runner.in] max_restarts: 10
[runner.in] path: $QUEUE_DIR/$name
[runner.in] sleep_time: 1s
[runner.in] start: yes
[runner.lmtp] class: mailman.runners.lmtp.LMTPRunner
[runner.lmtp] instances: 1
[runner.lmtp] max_restarts: 10
[runner.lmtp] path:
[runner.lmtp] sleep_time: 1s
[runner.lmtp] start: yes
[runner.nntp] class: mailman.runners.nntp.NNTPRunner
[runner.nntp] instances: 1
[runner.nntp] max_restarts: 10
[runner.nntp] path: $QUEUE_DIR/$name
[runner.nntp] sleep_time: 1s
[runner.nntp] start: yes
[runner.out] class: mailman.runners.outgoing.OutgoingRunner
[runner.out] instances: 1
[runner.out] max_restarts: 10
[runner.out] path: $QUEUE_DIR/$name
[runner.out] sleep_time: 1s
[runner.out] start: yes
[runner.pipeline] class: mailman.runners.pipeline.PipelineRunner
[runner.pipeline] instances: 1
[runner.pipeline] max_restarts: 10
[runner.pipeline] path: $QUEUE_DIR/$name
[runner.pipeline] sleep_time: 1s
[runner.pipeline] start: yes
[runner.rest] class: mailman.runners.rest.RESTRunner
[runner.rest] instances: 1
[runner.rest] max_restarts: 10
[runner.rest] path:
[runner.rest] sleep_time: 1s
[runner.rest] start: yes
[runner.retry] class: mailman.runners.retry.RetryRunner
[runner.retry] instances: 1
[runner.retry] max_restarts: 10
[runner.retry] path: $QUEUE_DIR/$name
[runner.retry] sleep_time: 15m
[runner.retry] start: yes
[runner.shunt] class: mailman.runners.fake.ShuntRunner
[runner.shunt] instances: 1
[runner.shunt] max_restarts: 10
[runner.shunt] path: $QUEUE_DIR/$name
[runner.shunt] sleep_time: 1s
[runner.shunt] start: no
[runner.task] class: mailman.runners.task.TaskRunner
[runner.task] instances: 1
[runner.task] max_restarts: 10
[runner.task] path:
[runner.task] sleep_time: 1m
[runner.task] start: yes
[runner.virgin] class: mailman.runners.virgin.VirginRunner
[runner.virgin] instances: 1
[runner.virgin] max_restarts: 10
[runner.virgin] path: $QUEUE_DIR/$name
[runner.virgin] sleep_time: 1s
[runner.virgin] start: yes
[shell] banner: Welcome to the GNU Mailman shell
Use commit() to commit changes.
Use abort() to discard changes since the last commit.
Exit with ctrl+D does an implicit commit() but exit() does not.
[shell] history_file: $var_dir/history.py
[shell] prompt: >>>
[shell] use_ipython: no
[styles] default: legacy-default
[webservice] admin_pass: restpass
[webservice] admin_user: restadmin
[webservice] api_version: 3.1
[webservice] configuration: python:mailman.config.gunicorn
[webservice] hostname: localhost
[webservice] port: 8001
[webservice] show_tracebacks: yes
[webservice] use_https: no
[webservice] workers: 2
*Kyriakos Terzopoulos
*Web developer / e-learning expert
*Tel:*+30 211 213 9858
*Mobile:* +30 694 526 4512
* E-mail: *kyriakos.terzopoulos(a)gmail.com
* Skype:* kyriakos.terzopoulos
Find me on Facebook <http://www.facebook.com/cirrus3d>
Follow me on Twitter <http://twitter.com/#%21/cirrus3d>
On Wed, 11 Oct 2023 at 12:37, Kyriakos Terzopoulos <
kyriakos.terzopoulos(a)gmail.com> wrote:
> Hi,
>
> I have the following in my mailman log
>
> [11/Oct/2023:12:31:39 +0300] "GET /3.1/lists/
> testlist(a)myproject.eu/held/count HTTP/1.1" 200 73 "-" "GNU Mailman REST
> client v3.3.5"
> [11/Oct/2023:12:31:43 +0300] "GET /3.1/lists/testlist.myproject.eu
> HTTP/1.1" 200 425 "-" "GNU Mailman REST client v3.3.5"
> [11/Oct/2023:12:31:43 +0300] "GET /3.1/lists/testlist(a)myproject.eu/config
> HTTP/1.1" 200 3111 "-" "GNU Mailman REST client v3.3.5"
> [11/Oct/2023:12:31:43 +0300] "GET /3.1/lists/
> testlist.myproject.eu/archivers HTTP/1.1" 200 100 "-" "GNU Mailman REST
> client v3.3.5"
> [11/Oct/2023:12:31:51 +0300] "GET /3.1/lists/testlist.myproject.eu
> HTTP/1.1" 200 425 "-" "GNU Mailman REST client v3.3.5"
> Oct 11 12:31:51 2023 (1534165) deque: do_confirm_verify
> Traceback (most recent call last):
> File
> "/opt/mailman/venv/lib/python3.10/site-packages/mailman/app/workflow.py",
> line 69, in __next__
> return step()
> File
> "/opt/mailman/venv/lib/python3.10/site-packages/mailman/app/subscriptions.py",
> line 382, in _step_send_confirmation
> raise StopIteration
> StopIteration
> [11/Oct/2023:12:31:51 +0300] "POST /3.1/members HTTP/1.1" 202 143 "-" "GNU
> Mailman REST client v3.3.5"
> [11/Oct/2023:12:31:51 +0300] "GET /3.1/lists/testlist.myproject.eu
> HTTP/1.1" 200 425 "-" "GNU Mailman REST client v3.3.5"
> [11/Oct/2023:12:31:51 +0300] "GET /3.1/lists/testlist(a)myproject.eu/config
> HTTP/1.1" 200 3111 "-" "GNU Mailman REST client v3.3.5"
> [11/Oct/2023:12:31:51 +0300] "GET /3.1/lists/
> testlist.myproject.eu/archivers HTTP/1.1" 200 100 "-" "GNU Mailman REST
> client v3.3.5"
>
> *Kyriakos Terzopoulos
> *Web developer / e-learning expert
>
> *Tel:*+30 211 213 9858
>
> *Mobile:* +30 694 526 4512
>
> * E-mail: *kyriakos.terzopoulos(a)gmail.com
> * Skype:* kyriakos.terzopoulos
> Find me on Facebook <http://www.facebook.com/cirrus3d>
> Follow me on Twitter <http://twitter.com/#%21/cirrus3d>
>
>
>
> On Wed, 11 Oct 2023 at 11:54, Odhiambo Washington <odhiambo(a)gmail.com>
> wrote:
>
>> On Wed, Oct 11, 2023 at 11:15 AM Kyriakos Terzopoulos <
>> kyriakos.terzopoulos(a)gmail.com> wrote:
>>
>> > Hi,
>> >
>> > I have set up (I believe successfully) and configured the following in a
>> > Virtualhost environment (with HestiaCP):
>> >
>> > - A record for lists.mydomain.com
>> > - Venv
>> > - Mailman core
>> > - Mailman web (run migrate, collectstatic, compress, compilemessages)
>> > Postorius
>> > - gunicorn, hyperkitty
>> > - Nginx
>> > - SMTP exim4 conf
>> >
>> > I can see Posrorius and I have logged in and created my first mailing
>> list:
>> >
>> > [image: Screenshot 2023-10-11 at 10.57.31 AM.png]
>> >
>> > My issue is that even though I have subscribed to my list as you can see
>> > above, I am not receiving the confirmation email. I get a "recipients
>> > refused" error. The smtp log for mailman is as follows:
>> >
>> > Oct 11 10:41:20 2023 (1533666)
>> > <169701007904.1534165.14569329382406660776@localhost> recipients
>> refused:
>> > {'
>> > kyriakos.terzopoulos(a)gmail.com': (550, b'Verification failed for
>> > <testlist-bounces+kyriakos.terzopoulos=gmail.com(a)myproject.eu
>> > >\nUnrouteable
>> > address\nSender verify failed')}
>> >
>> > Oct 11 10:41:20 2023 (1533666)
>> > <169701007904.1534165.14569329382406660776@localhost> smtp to
>> > testlist(a)myproject.eu for 1 recips, completed in 0.26796579360961914
>> > seconds
>> >
>> > Oct 11 10:41:20 2023 (1533666)
>> > <169701007904.1534165.14569329382406660776@localhost> post to
>> > testlist(a)myproject.eu from
>> > testlist-confirm+c9b20c5290bec43147a7e96a6b8cd825daf913d7(a)myproject.eu,
>> > 1667 bytes, 1 failures
>> >
>> > Oct 11 10:41:20 2023 (1533666)
>> > <169701007904.1534165.14569329382406660776@localhost> delivery to
>> > kyriakos.terzopoulos(a)gmail.com failed with code 550, b'Verification
>> failed
>> > for <testlist-bounces+kyriakos.terzopoulos=gmail.com(a)myproject.eu
>> > >\nUnrouteable
>> > address\nSender verify failed'
>> >
>> > I have used the configuration for exim that is here
>> > <
>> >
>> https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/docs/mta.h…
>> > >
>> > and
>> > I have also tested with the alternative approach that is documented in
>> >
>>
>> What do you have in the Exim's mainlog?
>>
>>
>> --
>> Best regards,
>> Odhiambo WASHINGTON,
>> Nairobi,KE
>> +254 7 3200 0004/+254 7 2274 3223
>> "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-)
>> [How to ask smart questions:
>> http://www.catb.org/~esr/faqs/smart-questions.html]
>> _______________________________________________
>> 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 kyriakos.terzopoulos(a)gmail.com
>>
>
1 year, 1 month
issue with Hyperkitty
by Ali Alnubani
Hi,
I'm migrating from mailman 2.1.15, I did the following:
* Installed packages
* Created database
* ./manage.py migrate
* mailman create dev(a)example.com<mailto:dev@example.com>
* ./manage.py hyperkitty_import -l dev(a)example.com /usr/local/mailman2/archives/private/dev.mbox/dev.mbox (the archive includes 69 emails).
* ./manage.py update_index_one_list dev(a)example.com
I'm seeing the following trace when I go to http://example.com/hyperkitty/list/dev@example.com/2018/5/:
```
ERROR 2018-08-07 13:54:23,897 19997 django.request Internal Server Error: /hyperkitty/list/dev(a)example.com/2018/5/
Traceback (most recent call last):
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/core/handlers/base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/core/handlers/base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "venv_path/lib/python3.5/site-packages/HyperKitty-1.2.0-py3.5.egg/hyperkitty/lib/view_helpers.py", line 134, in inner
return func(request, *args, **kwargs)
File "venv_path/lib/python3.5/site-packages/HyperKitty-1.2.0-py3.5.egg/hyperkitty/views/mlist.py", line 94, in archives
return _thread_list(request, mlist, threads, extra_context=extra_context)
File "venv_path/lib/python3.5/site-packages/HyperKitty-1.2.0-py3.5.egg/hyperkitty/views/mlist.py", line 123, in _thread_list
return render(request, template_name, context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/shortcuts.py", line 36, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 171, in render
return self._render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/library.py", line 234, in render
return t.render(new_context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 173, in render
return self._render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/defaulttags.py", line 209, in render
nodelist.append(node.render_annotated(context))
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/defaulttags.py", line 309, in render
return nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/library.py", line 192, in render
output = self.func(*resolved_args, **resolved_kwargs)
File "venv_path/lib/python3.5/site-packages/django_mailman3-1.2.0-py3.5.egg/django_mailman3/templatetags/pagination.py", line 36, in add_to_query_string
return conditional_escape(qs.urlencode())
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/http/request.py", line 524, in urlencode
for v in list_
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/http/request.py", line 524, in <genexpr>
for v in list_
AttributeError: 'int' object has no attribute 'encode'
ERROR 2018-08-07 13:54:23,897 19997 django.request Internal Server Error: /hyperkitty/list/dev(a)example.com/2018/5/
Traceback (most recent call last):
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/core/handlers/base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/core/handlers/base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "venv_path/lib/python3.5/site-packages/HyperKitty-1.2.0-py3.5.egg/hyperkitty/lib/view_helpers.py", line 134, in inner
return func(request, *args, **kwargs)
File "venv_path/lib/python3.5/site-packages/HyperKitty-1.2.0-py3.5.egg/hyperkitty/views/mlist.py", line 94, in archives
return _thread_list(request, mlist, threads, extra_context=extra_context)
File "venv_path/lib/python3.5/site-packages/HyperKitty-1.2.0-py3.5.egg/hyperkitty/views/mlist.py", line 123, in _thread_list
return render(request, template_name, context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/shortcuts.py", line 36, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 171, in render
return self._render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/library.py", line 234, in render
return t.render(new_context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 173, in render
return self._render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/defaulttags.py", line 209, in render
nodelist.append(node.render_annotated(context))
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/defaulttags.py", line 309, in render
return nodelist.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/template/library.py", line 192, in render
output = self.func(*resolved_args, **resolved_kwargs)
File "venv_path/lib/python3.5/site-packages/django_mailman3-1.2.0-py3.5.egg/django_mailman3/templatetags/pagination.py", line 36, in add_to_query_string
return conditional_escape(qs.urlencode())
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/http/request.py", line 524, in urlencode
for v in list_
File "venv_path/lib/python3.5/site-packages/Django-2.1-py3.5.egg/django/http/request.py", line 524, in <genexpr>
for v in list_
AttributeError: 'int' object has no attribute 'encode'
ERROR 2018-08-07 13:54:25,721 19997 django.server "GET /hyperkitty/list/dev(a)example.com/2018/5/ HTTP/1.1" 500 317983
```
Environment:
```
alembic==1.0.0
arrow==0.12.1
click==6.7
Django==2.1
django-haystack==2.8.1
django-mailman3==1.2.0
django-q==0.9.4
djangorestframework==3.8.2
httplib2==0.11.3
HyperKitty==1.2.0
mailman==3.2.0
mailman-hyperkitty==1.1.1
mailmanclient==3.2.0
Mako==1.0.7
postorius==1.2.0
psycopg2-binary==2.7.5
python-dateutil==2.7.3
requests==2.19.1
requests-oauthlib==1.0.0
SQLAlchemy==1.2.10
urllib3==1.23
uWSGI==2.0.17.1
Whoosh==2.7.4
```
Some of the archives are listed fine tho.
The same trace reproduced with 2 different imported archives.
I'm on Debian stretch and using python 3.5.3.
Can you help please?
Thanks,
Ali
6 years, 3 months
Re: config incoming email in my domain cpanel
by Rafael Mora
El jue., 3 ago. 2017 a las 16:25, tlhackque via Mailman-users (<
mailman-users(a)mailman3.org>) escribió:
> On 03-Aug-17 17:14, Rafael Mora wrote:
> >
> >
> > El jue., 3 ago. 2017 a las 16:07, tlhackque via Mailman-users
> > (<mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>>)
> > escribió:
> >
> > You've said you're working with labbrands.com <http://labbrands.com
> >.
> >
> > labbrands.com <http://labbrands.com> has address
> 192.185.51.89
> > mail.labbrands.com <http://mail.labbrands.com> has address
> > 192.185.51.89
> > www.labbrands.com <http://www.labbrands.com> is an alias for
> > labbrands.com <http://labbrands.com>.
> >
> > telnet proves that Exim is running on that IP address. Either you're
> > running it, or hostgator is redirecting the SMTP ports.
> >
> > You added:
> > lists.labbrands.com <http://lists.labbrands.com> has address
> > 190.145.27.66
> >
> > Presumably that's a different machine.
> >
> > So that now needs an MX record, and a firewall routing.
> >
> >
> > I added the MX record on our hostgator hosting like this:
> > image.png
> >
> > Is it correct???
> >
> No. And sending images to the mailing list doesn't get you help.
>
> You set up lists.labbrands.com as a secondary server, not an independent
> mail domain. This will cause you serious grief.
>
Ok I will remove that MX record on my hostgator hosting. Thank for your
help.
>
> You need to get some help from a more suitable list. Setting this up is
> not mailman-specific, and getting it right is more than a quick note.
>
> Try the Postfix documentation & mailing lists.
>
> >
> >
> > And the SPF
> > records ... and spam and virus filters, and all the other stuff
> > you need
> > to setup an independent, public-facing smtp server.
> >
> > But at least you won't have to relay.
> >
> > Good luck.
> >
> > On 03-Aug-17 16:55, Rafael Mora wrote:
> > > El jue., 3 ago. 2017 a las 15:49, tlhackque via Mailman-users (<
> > > mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>>)
> > escribió:
> > >
> > >> I think you're confused.
> > >>
> > >> You already have mail.labbrands.com <http://mail.labbrands.com>
> > set up as the MX record for
> > >> labbrands.com <http://labbrands.com>. And it has an A record
> > with the same address as your
> > >> webserver.
> > >>
> > > I'm working with the hostgator mailserver, we are not running a
> > local
> > > mailserver.
> > >
> > > As suggested I added an A record like this:
> > > [image: image.png]
> > >
> > > Is it correct? is it redirecting to my Ip so I can redirect it to
> my
> > > postfix/mm3 server?
> > >
> > >
> > >> So if you're getting e-mail on that domain, there's another e-mail
> > >> server running on that IP address. You can't have 2 servers
> > on port
> > >> 25. In that case, as has been noted before, you'll need to setup
> a
> > >> relay in that server, not a firewall redirect. Depending on
> > your MTA,
> > >> you would need to relay to your internal server. And make sure
> > your
> > >> firewall setup allows your MTA to do this.
> > >>
> > >> We can see it's EXIM:
> > >>
> > >> telnet mail.labbrands.com <http://mail.labbrands.com> 25
> > >> Trying 192.185.51.89...
> > >> Connected to mail.labbrands.com <http://mail.labbrands.com>
> > (192.185.51.89).
> > >> Escape character is '^]'.
> > >> help
> > >> 220-gator4137.hostgator.com
> > <http://220-gator4137.hostgator.com> ESMTP Exim 4.87 #1 Thu, 03
> > Aug 2017 15:47:48
> > >> -0500
> > >> 220-We do not authorize the use of this system to transport
> > unsolicited,
> > >> 220 and/or bulk e-mail.
> > >> 214-Commands supported:
> > >> 214 AUTH STARTTLS HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP
> > >> quit
> > >> 221 gator4137.hostgator.com <http://gator4137.hostgator.com>
> > closing connection
> > >> Connection closed by foreign host.
> > >>
> > >> Or, consolidate all your e-mail to one server - which is a lot
> > easier to
> > >> manage unless you have a really big operation. Postfix is
> > probably the
> > >> right choice, but requires more setup.
> > >>
> > >> Although Mailman3 configuration is not well documented (as you've
> > >> discovered), you may want to get help from someone with more
> > general
> > >> network and mail experience. You're now into territory that is,
> as
> > >> Simon indicated, not Mailman-specific.
> > >>
> > >> On 03-Aug-17 16:28, Rafael Mora wrote:
> > >>> El jue., 3 ago. 2017 a las 15:26, Mark Sapiro
> > (<mark(a)msapiro.net <mailto:mark@msapiro.net>>)
> > >> escribió:
> > >>>> On 08/03/2017 01:22 PM, Rafael Mora wrote:
> > >>>>> El jue., 3 ago. 2017 a las 15:18, Mark Sapiro
> > (<mark(a)msapiro.net <mailto:mark@msapiro.net>>)
> > >>>> escribió:
> > >>>>>> You need to forward port 25 for SMTP mail delivery and if
> > you want the
> > >>>>>> web UI (Postorius and HyperKitty) accessible from the
> > outside, port 80
> > >>>>>> for http and/or port 443 for https
> > >>>>>> <
> > >>>>>>
> > >>
> >
> https://www.iana.org/assignments/service-names-port-numbers/service-names-p…
> > >>>>>>> .
> > >>>>> I mean for incoming mail redirected from my hostgator
> > hosting, because
> > >>>> when
> > >>>>> I suscribe an email address MM3 sends a confirmation email,
> > so I have
> > >> to
> > >>>>> reply to be suscribed to the list.
> > >>>> As I said, for mail delivery you need to forward port 25 to
> > the Mailman
> > >>>> server.
> > >>>>
> > >>> Ok so I'll redirect in my zentyal firewall the port 25 to my
> local
> > >> centos7
> > >>> with postfix and MM3 with IP 192.168.1.42. Thanks Mark.
> > >>>
> > >>>
> > >>>> --
> > >>>> Mark Sapiro <mark(a)msapiro.net <mailto:mark@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 <mailto:mailman-users@mailman3.org>
> > >>>>
> >
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> > >>>>
> > >> --
> > >> This communication may not represent my employer's views,
> > >> if any, on the matters discussed.
> > >>
> > >> _______________________________________________
> > >> Mailman-users mailing list
> > >> mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>
> > >>
> >
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> > >>
> >
> > --
> > This communication may not represent my employer's views,
> > if any, on the matters discussed.
> >
> > _______________________________________________
> > Mailman-users mailing list
> > mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>
> >
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> >
> > --
> >
> > Atentamente / Best Regards
> >
> > Ing. Rafael Mora
> >
>
> --
> This communication may not represent my employer's views,
> if any, on the matters discussed.
>
> _______________________________________________
> Mailman-users mailing list
> mailman-users(a)mailman3.org
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
>
--
Atentamente / Best Regards
Ing. Rafael Mora
7 years, 3 months
Re: config incoming email in my domain cpanel
by Rafael Mora
Hello!
Just to let you know, the problem with the email reception was that I was
thinking that the email was coming from my hostgator panel, but I was
wrong, it's coming from Google (as I use gmail) so that was the problem, I
have to open the port 25 to any computer not just my hostgator server..
Have a great day. Bye.
On Thu, Aug 3, 2017, 16:25 tlhackque via Mailman-users <
mailman-users(a)mailman3.org> wrote:
> On 03-Aug-17 17:14, Rafael Mora wrote:
> >
> >
> > El jue., 3 ago. 2017 a las 16:07, tlhackque via Mailman-users
> > (<mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>>)
> > escribió:
> >
> > You've said you're working with labbrands.com <http://labbrands.com
> >.
> >
> > labbrands.com <http://labbrands.com> has address
> 192.185.51.89
> > mail.labbrands.com <http://mail.labbrands.com> has address
> > 192.185.51.89
> > www.labbrands.com <http://www.labbrands.com> is an alias for
> > labbrands.com <http://labbrands.com>.
> >
> > telnet proves that Exim is running on that IP address. Either you're
> > running it, or hostgator is redirecting the SMTP ports.
> >
> > You added:
> > lists.labbrands.com <http://lists.labbrands.com> has address
> > 190.145.27.66
> >
> > Presumably that's a different machine.
> >
> > So that now needs an MX record, and a firewall routing.
> >
> >
> > I added the MX record on our hostgator hosting like this:
> > image.png
> >
> > Is it correct???
> >
> No. And sending images to the mailing list doesn't get you help.
>
> You set up lists.labbrands.com as a secondary server, not an independent
> mail domain. This will cause you serious grief.
>
> You need to get some help from a more suitable list. Setting this up is
> not mailman-specific, and getting it right is more than a quick note.
>
> Try the Postfix documentation & mailing lists.
>
> >
> >
> > And the SPF
> > records ... and spam and virus filters, and all the other stuff
> > you need
> > to setup an independent, public-facing smtp server.
> >
> > But at least you won't have to relay.
> >
> > Good luck.
> >
> > On 03-Aug-17 16:55, Rafael Mora wrote:
> > > El jue., 3 ago. 2017 a las 15:49, tlhackque via Mailman-users (<
> > > mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>>)
> > escribió:
> > >
> > >> I think you're confused.
> > >>
> > >> You already have mail.labbrands.com <http://mail.labbrands.com>
> > set up as the MX record for
> > >> labbrands.com <http://labbrands.com>. And it has an A record
> > with the same address as your
> > >> webserver.
> > >>
> > > I'm working with the hostgator mailserver, we are not running a
> > local
> > > mailserver.
> > >
> > > As suggested I added an A record like this:
> > > [image: image.png]
> > >
> > > Is it correct? is it redirecting to my Ip so I can redirect it to
> my
> > > postfix/mm3 server?
> > >
> > >
> > >> So if you're getting e-mail on that domain, there's another e-mail
> > >> server running on that IP address. You can't have 2 servers
> > on port
> > >> 25. In that case, as has been noted before, you'll need to setup
> a
> > >> relay in that server, not a firewall redirect. Depending on
> > your MTA,
> > >> you would need to relay to your internal server. And make sure
> > your
> > >> firewall setup allows your MTA to do this.
> > >>
> > >> We can see it's EXIM:
> > >>
> > >> telnet mail.labbrands.com <http://mail.labbrands.com> 25
> > >> Trying 192.185.51.89...
> > >> Connected to mail.labbrands.com <http://mail.labbrands.com>
> > (192.185.51.89).
> > >> Escape character is '^]'.
> > >> help
> > >> 220-gator4137.hostgator.com
> > <http://220-gator4137.hostgator.com> ESMTP Exim 4.87 #1 Thu, 03
> > Aug 2017 15:47:48
> > >> -0500
> > >> 220-We do not authorize the use of this system to transport
> > unsolicited,
> > >> 220 and/or bulk e-mail.
> > >> 214-Commands supported:
> > >> 214 AUTH STARTTLS HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP
> > >> quit
> > >> 221 gator4137.hostgator.com <http://gator4137.hostgator.com>
> > closing connection
> > >> Connection closed by foreign host.
> > >>
> > >> Or, consolidate all your e-mail to one server - which is a lot
> > easier to
> > >> manage unless you have a really big operation. Postfix is
> > probably the
> > >> right choice, but requires more setup.
> > >>
> > >> Although Mailman3 configuration is not well documented (as you've
> > >> discovered), you may want to get help from someone with more
> > general
> > >> network and mail experience. You're now into territory that is,
> as
> > >> Simon indicated, not Mailman-specific.
> > >>
> > >> On 03-Aug-17 16:28, Rafael Mora wrote:
> > >>> El jue., 3 ago. 2017 a las 15:26, Mark Sapiro
> > (<mark(a)msapiro.net <mailto:mark@msapiro.net>>)
> > >> escribió:
> > >>>> On 08/03/2017 01:22 PM, Rafael Mora wrote:
> > >>>>> El jue., 3 ago. 2017 a las 15:18, Mark Sapiro
> > (<mark(a)msapiro.net <mailto:mark@msapiro.net>>)
> > >>>> escribió:
> > >>>>>> You need to forward port 25 for SMTP mail delivery and if
> > you want the
> > >>>>>> web UI (Postorius and HyperKitty) accessible from the
> > outside, port 80
> > >>>>>> for http and/or port 443 for https
> > >>>>>> <
> > >>>>>>
> > >>
> >
> https://www.iana.org/assignments/service-names-port-numbers/service-names-p…
> > >>>>>>> .
> > >>>>> I mean for incoming mail redirected from my hostgator
> > hosting, because
> > >>>> when
> > >>>>> I suscribe an email address MM3 sends a confirmation email,
> > so I have
> > >> to
> > >>>>> reply to be suscribed to the list.
> > >>>> As I said, for mail delivery you need to forward port 25 to
> > the Mailman
> > >>>> server.
> > >>>>
> > >>> Ok so I'll redirect in my zentyal firewall the port 25 to my
> local
> > >> centos7
> > >>> with postfix and MM3 with IP 192.168.1.42. Thanks Mark.
> > >>>
> > >>>
> > >>>> --
> > >>>> Mark Sapiro <mark(a)msapiro.net <mailto:mark@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 <mailto:mailman-users@mailman3.org>
> > >>>>
> >
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> > >>>>
> > >> --
> > >> This communication may not represent my employer's views,
> > >> if any, on the matters discussed.
> > >>
> > >> _______________________________________________
> > >> Mailman-users mailing list
> > >> mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>
> > >>
> >
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> > >>
> >
> > --
> > This communication may not represent my employer's views,
> > if any, on the matters discussed.
> >
> > _______________________________________________
> > Mailman-users mailing list
> > mailman-users(a)mailman3.org <mailto:mailman-users@mailman3.org>
> >
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> >
> > --
> >
> > Atentamente / Best Regards
> >
> > Ing. Rafael Mora
> >
>
> --
> This communication may not represent my employer's views,
> if any, on the matters discussed.
>
> _______________________________________________
> Mailman-users mailing list
> mailman-users(a)mailman3.org
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
>
--
Atentamente / Best Regards
Ing. Rafael Mora
7 years, 3 months