Rafael,
Apologies for the delay. I would certainly encourage you to stick with mailman3 :-). Thanks for providing all of the details of your current environment. Let me try and answer each of your questions as best I can.
You can check if mailman2 is already installed via rpms with the following command:
# rpm -qa | grep -i mailman
Based on your find
results, it looks as though you have multiple
locations where you have cloned or copied mailman3. At this point, it might
be easiest to start fresh. You mentioned you're using a CentOS 7 VM. Is it
possible to start from a clean build or snapshot?
Once you have a clean build, you should be able to follow Simon's instructions to get a working mailman3 instance (steps reproduced below for clarity).
# useradd -r -m -d /var/lib/mailman mailman # su - mailman $ python3 -m venv env $ source env/bin/activate $ pip install mailman $ mailman info
From there you can adjust the layout in your mailman.cfg file at /var/lib/mailman/var/etc/ (snippet below).
[mailman] layout: dev
If you can't start from a clean CentOS 7 VM, then you should be able to just wipe out your existing /var/lib/mailman directory and still use Simon's instructions.
# rm -rf /var/lib/mailman
Hopefully this will help you get up and going.
-Kyle
On Thu, Jul 13, 2017 at 10:16 AM, Rafael Mora <rafael.mora.guti@gmail.com> wrote:
Hello Kyle,
What steps do you suggest in order to install mailman v2 via rpm's??
Thank you.
El mar., 11 jul. 2017 a las 15:13, Kyle Richardson (< kylerichardson2@gmail.com>) escribió:
Looks like you are using the fhs (filesystem hierarchy standard) layout; is that what you intend? I would suggest changing the layout to "dev" for testing purposes. This will use your mailman.cfg/../.. as the var directory.
Is it possible you also have mailman v2 installed via rpms?
-Kyle
On Tue, Jul 11, 2017 at 3:41 PM, Rafael Mora <rafael.mora.guti@gmail.com> wrote:
Hello,
Here it's mailman info: [root@localhost bin]# ./mailman info GNU Mailman 3.2.0a1 (La Villa Strangiato) Python 3.6.0 (default, Jul 7 2017, 11:59:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] config file: /etc/mailman.cfg db url: sqlite:////var/lib/mailman/data/mailman.db devmode: DISABLED REST root url: http://localhost:8001/3.1/ REST credentials: restadmin:restpass
Here it's mailman conf: [root@localhost bin]# ./mailman conf [antispam] header_checks: [antispam] jump_chain: hold [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.master] class: [archiver.master] clobber_date: maybe [archiver.master] clobber_skew: 1d [archiver.master] configuration: changeme [archiver.master] 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: no [bounces] register_bounces_every: 15m [database] class: mailman.database.sqlite.SQLiteDatabase [database] debug: no [database] url: sqlite:///$DATA_DIR/mailman.db [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: iso-8859-1 [language.ast] description: Asturian [language.ast] enabled: yes [language.ca] charset: utf-8 [language.ca] description: Catalan [language.ca] enabled: yes [language.cs] charset: iso-8859-2 [language.cs] description: Czech [language.cs] enabled: yes [language.da] charset: iso-8859-1 [language.da] description: Danish [language.da] enabled: yes [language.de] charset: iso-8859-1 [language.de] description: German [language.de] enabled: yes [language.el] charset: iso-8859-7 [language.el] description: Greek [language.el] enabled: yes [language.es] charset: iso-8859-1 [language.es] description: Spanish [language.es] enabled: yes [language.et] charset: iso-8859-15 [language.et] description: Estonian [language.et] enabled: yes [language.eu] charset: iso-8859-15 [language.eu] description: Euskara [language.eu] enabled: yes [language.fi] charset: iso-8859-1 [language.fi] description: Finnish [language.fi] enabled: yes [language.fr] charset: iso-8859-1 [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: iso-8859-2 [language.hr] description: Croatian [language.hr] enabled: yes [language.hu] charset: iso-8859-2 [language.hu] description: Hungarian [language.hu] enabled: yes [language.ia] charset: iso-8859-15 [language.ia] description: Interlingua [language.ia] enabled: yes [language.it] charset: iso-8859-1 [language.it] description: Italian [language.it] enabled: yes [language.ja] charset: euc-jp [language.ja] description: Japanese [language.ja] enabled: yes [language.ko] charset: euc-kr [language.ko] description: Korean [language.ko] enabled: yes [language.lt] charset: iso-8859-13 [language.lt] description: Lithuanian [language.lt] enabled: yes [language.nl] charset: iso-8859-1 [language.nl] description: Dutch [language.nl] enabled: yes [language.no] charset: iso-8859-1 [language.no] description: Norwegian [language.no] enabled: yes [language.pl] charset: iso-8859-2 [language.pl] description: Polish [language.pl] enabled: yes [language.pt] charset: iso-8859-1 [language.pt] description: Protuguese [language.pt] enabled: yes [language.pt_BR] charset: iso-8859-1 [language.pt_BR] description: Protuguese (Brazil) [language.pt_BR] enabled: yes [language.ro] charset: iso-8859-2 [language.ro] description: Romanian [language.ro] enabled: yes [language.ru] charset: koi8-r [language.ru] description: Russian [language.ru] enabled: yes [language.sk] charset: utf-8 [language.sk] description: Slovak [language.sk] enabled: yes [language.sl] charset: iso-8859-2 [language.sl] description: Slovenian [language.sl] enabled: yes [language.sr] charset: utf-8 [language.sr] description: Serbian [language.sr] enabled: yes [language.sv] charset: iso-8859-1 [language.sv] description: Swedish [language.sv] enabled: yes [language.tr] charset: iso-8859-9 [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: %(asctime)s (%(process)d) %(message)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.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.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] cache_life: 7d [mailman] default_language: en [mailman] email_commands_max_lines: 10 [mailman] filtered_messages_are_preservable: no [mailman] html_to_plain_text_command: /usr/bin/lynx -dump $filename [mailman] layout: fhs [mailman] listname_chars: [-_.0-9a-z] [mailman] noreply_address: noreply [mailman] pending_request_life: 3d [mailman] post_hook: [mailman] pre_hook: [mailman] sender_headers: from from_ reply-to sender [mailman] site_owner: changeme@example.com [mta] configuration: python:mailman.config.postfix [mta] delivery_retry_period: 5d [mta] incoming: mailman.mta.postfix.LMTP [mta] lmtp_host: 127.0.0.1 # IP where Mailman should listen for emails from MTA [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: 127.0.0.1 # IP Where MTA is listening for emails [mta] smtp_pass: [mta] smtp_port: 25 [mta] smtp_user: [mta] verp_confirm_format: $address+$cookie [mta] verp_confirm_regexp: ^(.*<)?(?P<addr>[^+]+?)\+(?P< cookie>[^@]+)@.*$ [mta] verp_confirmations: no [mta] verp_delimiter: + [mta] verp_delivery_interval: 0 [mta] verp_format: ${bounces}+${local}=${domain} [mta] verp_personalized_deliveries: no [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] 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 [shell] banner: Welcome to the GNU Mailman shell [shell] history_file: [shell] prompt: >>> [shell] use_ipython: no [styles] default: legacy-default [styles] paths: mailman.styles [webservice] admin_pass: restpass [webservice] admin_user: restadmin [webservice] api_version: 3.1 [webservice] hostname: localhost [webservice] port: 8001 [webservice] show_tracebacks: yes [webservice] use_https: no
What do you suggest? Thank you
El mar., 11 jul. 2017 a las 14:31, Simon Hanna (< simon.hanna@serve-me.info>) escribió:
Below is how I would recommend to run Mailman for production using a virtualenv
# useradd -r -m -d /var/lib/mailman mailman
# su - mailman
$ python3 -m venv env $ source env/bin/activate $ pip install mailman $ mailman info
Now you should have a working configuration in /var/lib/mailman/var/
to run mailman you don't need to activate the virtualenv, just use the executable /var/lib/mailman/env/bin/mailman
cheers, Simon
Mailman-users mailing list mailman-users@mailman3.org https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
--
Atentamente / Best Regards
Ing. Rafael Mora
Mailman-users mailing list mailman-users@mailman3.org https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
--
Atentamente / Best Regards
Ing. Rafael Mora