FW: [Django] ERROR (EXTERNAL IP): Internal Server Error: /user-profile/
by Christian Stalberg
Is this anything to be concerned about? It seems like an attempted break-in as I have no user named alekos.pantazis.
-----Original Message-----
From: noreply(a)lists.ccalternatives.org <noreply(a)lists.ccalternatives.org>
Sent: Tuesday, October 12, 2021 7:55 AM
To: csa(a)web-analysts.net
Subject: [Django] ERROR (EXTERNAL IP): Internal Server Error: /user-profile/
Internal Server Error: /user-profile/
TemplateSyntaxError at /user-profile/
'd_gravatar' is not a registered tag library. Must be one of:
account
admin_list
admin_modify
admin_urls
bootstrap_tags
cache
compress
date_helpers
debugger_tags
gravatar
highlight
highlighting
hk_generic
hk_haystack
i18n
indent_text
l10n
log
markdown
membership_helpers
more_like_this
nav_helpers
p_gravatar
pagination
rest_framework
socialaccount
static
syntax_color
tz
widont
Request Method: GET
Request URL: https://lists.ccalternatives.org/user-profile/
Django Version: 3.0.11
Python Executable: /opt/mailman/mm/venv/bin/python Python Version: 3.7.3 Python Path: ['/opt/mailman/mm', '/opt/mailman/mm/', '/opt/mailman/mm/bin', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/opt/mailman/mm/venv/lib/python3.7/site-packages']
Server time: Tue, 12 Oct 2021 07:54:41 -0700 Installed Applications:
('hyperkitty',
'postorius',
'django_mailman3',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'django_gravatar',
'compressor',
'haystack',
'django_extensions',
'django_q',
'allauth',
'allauth.account',
'allauth.socialaccount')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django_mailman3.middleware.TimezoneMiddleware',
'postorius.middleware.PostoriusMiddleware')
Traceback (most recent call last):
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/defaulttags.py", line 1021, in find_library
return parser.libraries[name]
During handling of the above exception ('d_gravatar'), another exception occurred:
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django_mailman3/views/profile.py", line 97, in user_profile
'gravatar_url': gravatar_url,
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/shortcuts.py", line 19, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/loader.py", line 61, in render_to_string
template = get_template(template_name, using=using)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/loader.py", line 15, in get_template
return engine.get_template(template_name)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/backends/django.py", line 34, in get_template
return Template(self.engine.get_template(template_name), self)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/engine.py", line 143, in get_template
template, origin = self.find_template(template_name)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/engine.py", line 125, in find_template
template = loader.get_template(name, skip=skip)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/loaders/cached.py", line 53, in get_template
template = super().get_template(template_name, skip)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/loaders/base.py", line 30, in get_template
contents, origin, origin.template_name, self.engine,
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/base.py", line 156, in __init__
self.nodelist = self.compile_nodelist()
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/base.py", line 194, in compile_nodelist
return parser.parse()
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/base.py", line 477, in parse
raise self.error(token, e)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/base.py", line 475, in parse
compiled_result = compile_func(self, token)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/loader_tags.py", line 266, in do_extends
nodelist = parser.parse()
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/base.py", line 477, in parse
raise self.error(token, e)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/base.py", line 475, in parse
compiled_result = compile_func(self, token)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/defaulttags.py", line 1078, in load
lib = find_library(parser, name)
File "/opt/mailman/mm/venv/lib/python3.7/site-packages/django/template/defaulttags.py", line 1025, in find_library
name, "\n".join(sorted(parser.libraries)),
Exception Type: TemplateSyntaxError at /user-profile/ Exception Value: 'd_gravatar' is not a registered tag library. Must be one of:
account
admin_list
admin_modify
admin_urls
bootstrap_tags
cache
compress
date_helpers
debugger_tags
gravatar
highlight
highlighting
hk_generic
hk_haystack
i18n
indent_text
l10n
log
markdown
membership_helpers
more_like_this
nav_helpers
p_gravatar
pagination
rest_framework
socialaccount
static
syntax_color
tz
widont
Request information:
USER: alekos.pantazis
GET: No GET data
POST: No POST data
FILES: No FILES data
COOKIES:
csrftoken = 'qYEFt1aMtwVpwCk4CX0vJca60Vq74nuPFdpVsSpxSlXcuNILLVDA6I5PS8VM35fi'
sessionid = 'lxn3gc50hvx9l8nbhcx9eq8hbg9wcdmj'
META:
CSRF_COOKIE = 'qYEFt1aMtwVpwCk4CX0vJca60Vq74nuPFdpVsSpxSlXcuNILLVDA6I5PS8VM35fi'
HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.9,el;q=0.8,es;q=0.7'
HTTP_CONNECTION = 'close'
HTTP_COOKIE = 'csrftoken=qYEFt1aMtwVpwCk4CX0vJca60Vq74nuPFdpVsSpxSlXcuNILLVDA6I5PS8VM35fi; sessionid=lxn3gc50hvx9l8nbhcx9eq8hbg9wcdmj'
HTTP_DNT = '1'
HTTP_HOST = '127.0.0.1:8000'
HTTP_REFERER = 'https://lists.ccalternatives.org/mailman3/lists/?all-lists'
HTTP_SEC_CH_UA = '"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"'
HTTP_SEC_CH_UA_MOBILE = '?0'
HTTP_SEC_CH_UA_PLATFORM = '"Windows"'
HTTP_SEC_FETCH_DEST = 'document'
HTTP_SEC_FETCH_MODE = 'navigate'
HTTP_SEC_FETCH_SITE = 'same-origin'
HTTP_SEC_FETCH_USER = '?1'
HTTP_UPGRADE_INSECURE_REQUESTS = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'
HTTP_X_FORWARDED_FOR = '109.242.137.79'
HTTP_X_FORWARDED_HOST = 'lists.ccalternatives.org'
HTTP_X_FORWARDED_PROTO = 'https'
HTTP_X_FORWARDED_SERVER = 'lists.ccalternatives.org'
PATH_INFO = '/user-profile/'
QUERY_STRING = ''
RAW_URI = '/user-profile/'
REMOTE_ADDR = '127.0.0.1'
REMOTE_PORT = '41760'
REQUEST_METHOD = 'GET'
SCRIPT_NAME = ''
SERVER_NAME = '127.0.0.1'
SERVER_PORT = '8000'
SERVER_PROTOCOL = 'HTTP/1.0'
SERVER_SOFTWARE = 'gunicorn/20.0.4'
gunicorn.socket = <socket.socket fd=4, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8000), raddr=('127.0.0.1', 41760)> wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f57fcb5f048> wsgi.file_wrapper = ''
wsgi.input = <gunicorn.http.body.Body object at 0x7f57fcc5cc18> wsgi.input_terminated = True wsgi.multiprocess = True wsgi.multithread = False wsgi.run_once = False wsgi.url_scheme = 'https'
wsgi.version = '(1, 0)'
Settings:
Using settings module settings
ABSOLUTE_URL_OVERRIDES = {}
ACCOUNT_AUTHENTICATION_METHOD = 'username_email'
ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_UNIQUE_EMAIL = True
ADMINS = "(('Mailman Admin', 'csa(a)web-analysts.net'),)"
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'lists.ccalternatives.org', '192.46.218.224'] APPEND_SLASH = True AUTHENTICATION_BACKENDS = "('django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend')"
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'auth.User'
BASE_DIR = '/opt/mailman/mm'
BROWSERID_AUDIENCES = ['http://localhost', 'http://localhost:8000', 'http://127.0.0.1:8000', 'http://lists.ccalternatives.org', 'https://localhost', 'https://localhost:8000', 'https://127.0.0.1:8000', 'https://lists.ccalternatives.org']
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 'LOCATION': '127.0.0.1:11211'}} CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
COMPRESSORS = {'css': 'compressor.css.CssCompressor', 'js': 'compressor.js.JsCompressor'} COMPRESS_CACHEABLE_PRECOMPILERS = '()'
COMPRESS_CACHE_BACKEND = 'default'
COMPRESS_CACHE_KEY_FUNCTION = '********************'
COMPRESS_CLEAN_CSS_ARGUMENTS = ''
COMPRESS_CLEAN_CSS_BINARY = 'cleancss'
COMPRESS_CLOSURE_COMPILER_ARGUMENTS = ''
COMPRESS_CLOSURE_COMPILER_BINARY = 'java -jar compiler.jar'
COMPRESS_CSS_HASHING_METHOD = 'mtime'
COMPRESS_DATA_URI_MAX_SIZE = 1024
COMPRESS_DEBUG_TOGGLE = None
COMPRESS_ENABLED = True
COMPRESS_FILTERS = {'css': ['compressor.filters.css_default.CssAbsoluteFilter'], 'js': ['compressor.filters.jsmin.JSMinFilter']}
COMPRESS_JINJA2_GET_ENVIRONMENT = <function CompressorConf.JINJA2_GET_ENVIRONMENT at 0x7f58032bd7b8> COMPRESS_MINT_DELAY = 30 COMPRESS_MTIME_DELAY = 10 COMPRESS_OFFLINE = True COMPRESS_OFFLINE_CONTEXT = {'STATIC_URL': '/static/'} COMPRESS_OFFLINE_MANIFEST = 'manifest.json'
COMPRESS_OFFLINE_TIMEOUT = 31536000
COMPRESS_OUTPUT_DIR = 'CACHE'
COMPRESS_PARSER = 'compressor.parser.AutoSelectParser'
COMPRESS_PRECOMPILERS = "(('text/x-scss', 'sass -t compressed {infile} {outfile}'), ('text/x-sass', 'sass -t compressed {infile} {outfile}'))"
COMPRESS_REBUILD_TIMEOUT = 2592000
COMPRESS_ROOT = '/opt/mailman/mm/static'
COMPRESS_STORAGE = 'compressor.storage.CompressorFileStorage'
COMPRESS_TEMPLATE_FILTER_CONTEXT = {'STATIC_URL': '/static/'} COMPRESS_URL = '/static/'
COMPRESS_URL_PLACEHOLDER = '/__compressor_url_placeholder__/'
COMPRESS_VERBOSE = False
COMPRESS_YUGLIFY_BINARY = 'yuglify'
COMPRESS_YUGLIFY_CSS_ARGUMENTS = '--terminal'
COMPRESS_YUGLIFY_JS_ARGUMENTS = '--terminal'
COMPRESS_YUI_BINARY = 'java -jar yuicompressor.jar'
COMPRESS_YUI_CSS_ARGUMENTS = ''
COMPRESS_YUI_JS_ARGUMENTS = ''
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
CSRF_USE_SESSIONS = False
DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mailman', 'USER': 'mailman', 'PASSWORD': '********************', 'HOST': '127.0.0.1', 'PORT': '', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}} DATABASE_ROUTERS = [] DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000 DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y'] DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] DEBUG = False DEBUG_PROPAGATE_EXCEPTIONS = False DECIMAL_SEPARATOR = '.'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'noreply(a)lists.ccalternatives.org'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_CONFIRMATION_FROM = 'postmaster(a)lists.ccalternatives.org'
EMAIL_HOST = 'localhost'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Django] '
EMAIL_TIMEOUT = None
EMAIL_USE_LOCALTIME = False
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
FILE_CHARSET = 'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = 420
FILE_UPLOAD_TEMP_DIR = None
FILTER_VHOST = False
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
HAYSTACK_CONNECTIONS = {'default': {'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': '/opt/mailman/mm/fulltext_index'}}
HYPERKITTY_DISABLE_SINGLETON_TASKS = True IGNORABLE_404_URLS = [] INSTALLED_APPS = "('hyperkitty', 'postorius', 'django_mailman3', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'django_gravatar', 'compressor', 'haystack', 'django_extensions', 'django_q', 'allauth', 'allauth.account', 'allauth.socialaccount')"
INTERNAL_IPS = []
LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur'] LANGUAGE_CODE = 'en-us'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_HTTPONLY = False
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LANGUAGE_COOKIE_SAMESITE = None
LANGUAGE_COOKIE_SECURE = False
LOCALE_PATHS = []
LOGGING = {'version': 1, 'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'handlers': {'mail_admins': {'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler'}, 'file': {'level': 'INFO', 'class': 'logging.handlers.WatchedFileHandler', 'filename': '/opt/mailman/mm/logs/mailmansuite.log', 'formatter': 'verbose'}, 'console': {'class': 'logging.StreamHandler', 'formatter': 'simple'}}, 'loggers': {'django.request': {'handlers': ['mail_admins', 'file'], 'level': 'ERROR', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'ERROR', 'propagate': True}, 'hyperkitty': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'postorius': {'handlers': ['console', 'file'], 'level': 'INFO'}}, 'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(process)d %(name)s %(message)s'}, 'simple': {'format': '%(levelname)s %(message)s'}}} LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = 'list_index'
LOGIN_URL = 'account_login'
LOGOUT_REDIRECT_URL = None
LOGOUT_URL = 'account_logout'
MAILMAN_ARCHIVER_FROM = "('127.0.0.1', '::1', '::ffff:127.0.0.1', '192.46.218.224')"
MAILMAN_ARCHIVER_KEY = '********************'
MAILMAN_REST_API_PASS = '********************'
MAILMAN_REST_API_URL = '********************'
MAILMAN_REST_API_USER = '********************'
MANAGERS = []
MEDIA_ROOT = ''
MEDIA_URL = ''
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS = {40: 'danger'}
MIDDLEWARE = "('django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django_mailman3.middleware.TimezoneMiddleware', 'postorius.middleware.PostoriusMiddleware')"
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
POSTORIUS_TEMPLATE_BASE_URL = 'https://lists.ccalternatives.org'
PREPEND_WWW = False
Q_CLUSTER = {'timeout': 300, 'save_limit': 100, 'orm': 'default'} ROOT_URLCONF = 'urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = False
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_PRELOAD = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = "('HTTP_X_FORWARDED_PROTO', 'https')"
SECURE_REDIRECT_EXEMPT = []
SECURE_REFERRER_POLICY = None
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = False
SERVER_EMAIL = 'noreply(a)lists.ccalternatives.org'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SAMESITE = 'Lax'
SESSION_COOKIE_SECURE = False
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
SETTINGS_MODULE = 'settings'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SITE_ID = 3
SOCIALACCOUNT_PROVIDERS = {'google': {'SCOPE': ['profile', 'email'], 'AUTH_PARAMS': {'access_type': 'online'}}, 'gitlab': {'SCOPE': ['read_user']}} STATICFILES_DIRS = '()'
STATICFILES_FINDERS = "('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder')"
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/opt/mailman/mm/static'
STATIC_URL = '/static/'
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.template.context_processors.csrf', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django_mailman3.context_processors.common', 'hyperkitty.context_processors.common', 'postorius.context_processors.postorius']}}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] TIME_ZONE = 'America/Los_Angeles'
USE_I18N = True
USE_L10N = True
USE_SSL = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = True
USE_X_FORWARDED_PORT = False
WSGI_APPLICATION = 'wsgi.application'
X_FRAME_OPTIONS = 'DENY'
YEAR_MONTH_FORMAT = 'F Y'
3 years, 1 month
Re: Confusing mailman user model
by Gilles Filippini
Gilles Filippini a écrit le 19/07/2020 à 18:00 :
> Mark Sapiro a écrit le 19/07/2020 à 17:30 :
>> On 7/19/20 8:10 AM, Gilles Filippini wrote:
>>> Hi,
>>>
>>> I'm trying to understand the Mailman user model, and I'm confused about
>>> the respective roles of tables 'auth_user' and 'user'.
>>
>>
>> auth_user is a Django auth table. These are the users listed in the
>> Django admin web UI.
>>
>> user is Mailman core's users.
>>
>>
>>> Both have an 'id' column referred to as 'user_id' when used as a foreign
>>> key. But there seems to be no relation at all between them as they use
>>> different ids for the same user.
>>
>>
>> Right, they are unrelated.
>>
>>
>>> Our mailman server was migrated from mailman2 to mailman3 about 1.5 year
>>> ago, and there is an inconsistency I'd like to fix:
>>> 2 of our users have a registered Mailman account with their respective
>>> email addresses in table 'auth_user', but these very same addresses in
>>> the 'address' table are linked to another old admin account in the
>>> 'user' table.
>>
>> Their Mailman account is the 'old' one. the auth_user account is a
>> Django account
>>>
>>> Then if add one of these addresses as a domain owner, it it the old
>>> admin address which is selected instead. How could I fix that?
>>
>>
>> That's because domain owner in a Mailman thing and involvs the Mailman
>> user. You could delete the Django users via the Django admin UI and then
>> re-register them via Postorius. That *might* work.
>
> When login into postorius, it is the Django account that is used, right?
> Then how is the mailman account retrieved from there? It seems UUIDs are
> used in the process, but I fail understanding how, so far. Wouldn't it
> be safe to retrieve the new Mailman account associated to these Django
> users, and link there emails from 'address' table' to them?
Reading the mailman-web source code I understand now that the mailman
account is retrieved from the Django account email address. Then both
users are tied to the same old mailman admin account, and deleting then
registering them again won't change anything on this aspect.
Would this work?
1- For both addresses, update their record in table 'address' to set
'user_id' to null
2- On their next login to Mailman-web, a new mailman account would be
created and associated with their own email address.
Is my understanding correct?
_g.
4 years, 4 months
Re: Advice on migrating to Mailman 3
by Daniel Armengod
Hello Christoph,
> If we setup such a system, can we assume that it will silently operate
> without causing much administration work most of the time (like my
> nginx server)? Or is maintaining a Mailman 3 server a significant burden?
As with all things, it is easy once you've mastered it, and easy for
someone who /has/ mastered it to say it's easy :P
It's an interesting technical challenge, but please bear in mind that
you'll need to gain a reasonable level of expertise not only in
configuring, deploying and maintaining Mailman3, but also the associated
MTA (usually postfix) with (very probably) a SPAM filter hooked up to
it. And, of course, both Django-based WebUI projects for administering
(Postorius) and archiving (Hyperkitty), with associated HTTP servers and
DBMSs.
The (almost-)complete list of software you'll need be familiar with to
achieve any reasonable degree of success is:
* An HTTP server with WSGI backend (*Apache2 / Nginx, mod_wsgi / uwsgi*)
* An MTA for reception and sending of messages (*Postfix*)
* (Optionally) an anti-spam & DKIM-signing solution (*rspamd / amavis*)
* The *Django* Python web framework - deploying *Postorius* +
*Hyperkitty* does require some TLC on this front. Familiarity
deploying Django-based projects helps /immensely/.
* *MySQL / PostgreSQL* / any other supported DBMS - for the
aforementioned Web UIs.
* Assorted knowledge of how email servers interoperate, in particular
setting up FCrDNS, SPF records for better deliverability, possibly
an understanding of DMARC/DKIM in case things ever go wrong
(spoiler: yahoo does /not/ play nice with mailing lists ever since
they published their DMARC policies...)
* And, of course, general SysAdmin knowledge to install the OS, set up
SysV/Systemd units so everything starts up smoothly after a reboot,
probably a monitoring system to get alerts & insights in case
something goes wrong, etc.
> The only problem is that our list runs on Mailman 2. We would like to
> move to Mailman 3
Why? Is there any feature you're missing in Mailman2 that Mailman3 has?
If your Mailman2 installation "just works" and serves all of your needs,
my advice would be to /keep it/. It's an old warhorse, but works
reliably, and is maintained (so long as your hosting provider actually
bothers to maintain it up-to-date, of course). E-mail technology is
ancient; one hardly needs the latest version of /anything/ that is based
around e-mail.
If your current ISP offers a decent service and you're happy with them,
I'd definitely stay. Especially if you don't have a dedicated sysadmin
profile in your project's team.
> are you aware of organizations that propose Mailman 3 hosting for open
> source projects?
If you're based in Europe, I can offer a few recommendations. I'm not
comfortable with posting specific names on a public mailing list (that's
tantamount to self-advertising), but feel free to ask by private reply.
Regards,
Daniel
4 years, 9 months
Re: Unable to download attachments from HyperKitty
by Derek Lambert
This happens with all attachments, regardless of file type.
I've rebuilt my containers numerous times and have tried running them on different hosts.
uwsgi does log it's only generating 26 bytes for attachment requests. Example:
uwsgi: [pid: 15|app: 0|req: 3/20] 192.168.253.1 () {48 vars in 2110 bytes} [Wed Feb 20 20:18:35 2019] GET /hyperkitty/list/test-list@domain.com/message/XWTEPEKLG5DNHW4M223RH3ULQ3ZMNOKK/attachment/3/attachment.htm => generated 26 bytes in 36 msecs (HTTP/1.1 200) 13 headers in 649 bytes (1 switches on core 1)
It doesn't appear it's a header issue, they're identical (except for the dates) with and without the patch. I can provide them if you'd like.
I assume it's not an issue with HyperKitty since no one else has reported it. Was hoping someone had encountered this when running with uwsgi. Google was no help.
Derek Lambert
On 2/19/19, 5:21 PM, "Abhilash Raj" <maxking(a)asynchronous.in> wrote:
On Tue, Feb 19, 2019, at 7:32 AM, Derek Lambert wrote:
> I’m having an issue downloading attachments from HyperKitty. The
> download begins as expected, but never progresses. Eventually it times
> out. I imagine the browser is expecting data matching the
> content-length header, but never receives it.
>
> Inspecting the contents of the download file reveals (address varies):
>
> <memory at 0x7f148fcb9588>
>
> I’ve been able to work around the issue with the following patch:
>
> ---
> env/lib/python3.7/site-packages/hyperkitty/models/email.py.orig 2018-12-06 21:38:39.544448735 +0000
> +++
> env/lib/python3.7/site-packages/hyperkitty/models/email.py 2018-12-06
> 23:01:39.923239421 +0000
> @@ -309,7 +309,7 @@
> def get_content(self):
> folder = self._get_folder()
> if folder is None:
> - return self.content
> + return self.content.tobytes()
> filepath = os.path.join(folder, str(self.counter))
> if not os.path.exists(filepath):
> logger.error("Could not find local attachment %s for email
> %s",
>
> I haven't been able to replicate the issue with the HyperKitty tests,
> presumably the issue is somewhere in the Django <-> uwsgi <-> nginx
> stack.
>
> My configs are based on mailman-suite and maxking/docker-mailman. I've
> tried stripping out all the performance tweaks from my uwsgi and nginx
> configs, but no change.
>
> Versions:
> HyperKitty 1.2.1
> Postorius 1.2.3
> Django 2.1.7
> nginx 1.14.1
> uwsgi 2.0.18
> Python 3.7.2
>
> Has anyone come across this before?
I am not sure if this is exactly a bug in Hyperkitty. I am not able to replicate this with a extremely complicated test: Downloading a signature file in an email on lists.mailman3.org. It runs on gunicorn + Django 2.1.5 ( I think) and latest Git heads of respective projects.
Is this a recurring or one time thing that you observed?
It would be great if we could you could capture the HTTP Headers with and without the patch you sent above to help debug why does `.tobytes()` lets you download.
--
thanks,
Abhilash Raj (maxking)
5 years, 9 months
Re: Weird response to postings after subscriptions and accounts
by Paul Arenson
And the to clarify my problems with the signup procedure and how I might deal
with it. (Mostly a very small change on your part and an explanation on my website for my users)
"I understand it's not totally explicit, but it says 'To subscribe or unsubscribe from this list, please log in first. If you have not previously logged in, you may need to set up an account with the appropriate email address.’ To me the implication is once you have created an account, you have to come back, log in and subscribe. What do you want it to say?"
I had to test to find out that there is not a lot I would change. Let me just preface it by sharing my experience. As a person with learning disabilities (following instructions is the hardest), I found the procedures dating when using a few pretend signups.
This brings me back to a job I had in the 80s and 90s. When I was working on user manual for Seiko watches, the engineers wrote the manuals in Japanese-Engllish based on what the watches could do. But I put myself in the place of the user, who often did not know why they needed that function. And so I had to translate into an English explanation started from the point of view of what they might want to do with the watch.
In the case of Mailman 3 much depends on the individual list and its settings, so my conclusion is it is mostly on me. With just a suggestion that you have a SIGN UP blue button to make things less confusing and not necessitating multiple clicking.
The main obstacle I found was I had my list settings as NO to "Choose whether to include this list on the list of all lists". Changing this to "Yes" made it a little easier.
Here are my two tests and conclusion.
2) TEST 1
________
Sign up first...
https://list.tokyoprogressive.org/postorius/lists/discuss.list.tokyoprogres…
...you will find that if I have said NO on "Choose whether to include this list on the list of all lists” you will find it hard to go back to the subscribe page. Unless you backspace. Or paste the address again. Not ideal
QUESTIONS: Am I missing something? By not having my discussion listed, people cannot find it to subscribe.
Or is NOT LISTED better where I add people manually to subscribe and then tell them to sign up?
3) TEST 2
________
One solution is I could put the list back on the host’s list of lists back and tell people to click on Discuss.
That is what I did for now. Then it is rather smooth. I could tell my users (especially ones from previous company’s mailing list who want to interact with the hyperkitty site)
to
CLICK LOGIN
CLICK SIGNIN
then follow all these steps:
Verify
Confirm
Get taken to sign in page
Click Discuss
Subscribe
Click Archives
Or I could leave it as it is and tell people to backspace until they find the signup page and then subscribe.
Or tell them to copy and paste https://list.tokyoprogressive.org/postorius/lists/discuss.list.tokyoprogres…
or https://list.tokyoprogressive.org/accounts/signup/ in the same browser window and then subscribe.
CONCLUSION and SUGGESTION—> WHY NOT HAVE A SEPARATE BLUE BUTTON TO SIGN UP TO AVOID THE CONFUSING clicking twice?
IS THIS THE ANSWER?—
Tell my users as follows on a WORDPRESS PAGE as follows:
- - - - - - - - - - - -
Greetings. If you have never signed up before, follow instructions A. If you are coming from the previous dadamail list, follow instructions B
INSTRUCTIONS A
Steps 1-3 to get on the mailing list and be able to post from your email account.
Continue to steps 4 and 5 if you want to see the archives and post from that page. (Note to Mark: I have turned the archives off by default to make it more of a no brainer to want to sign up)
INSTRUCTIONS B
You are already registered, you will continue to get messages and be able to send to the list. If you want to keep using the same email address you are all set and do not need to do anything.
If you want to keep using the same address, but also be able to access the archives, follow steps 4 and 5 only.
If you want to register a new address, follow steps 1-5 below.
1) Go here
https://list.tokyoprogressive.org/postorius/lists/discuss.list.tokyoprogres…
Add your email address at the BOTTOM of the page. Name is optional.
2) Then wait for email to reply to come.
3) That’s it. You can stop here. However, you can sign up to the archives which makes this list more of a forum to see at a glance old conversations. And you can also post from it. To do so, continue to steps 4 and 5,
4) Right on the same page, you can sign up and sign in by clicking
log in and then sign up and then follow the same procedure as above. (Mark, SEE SUGGESTION FOR A BLUE SIGN UP BUTTON).
5) Once you have signed up, you can log in to access the archives and web posting.
- - - - - - - - - - - -
Hope the above long winded post was clear. Feel like I am sseing the lite.
5 years, 2 months
Re: Please help: Mailaman3 -
by Abhilash Raj
On Wed, Sep 2, 2020, at 10:28 AM, Jane Anara via Mailman-users wrote:
> Hello Abhilash,
>
> Thank you for your reply.
>
> I did use the mailman-suit url.py before and got similar errors. At
> your suggestion, I again included the following in the import session:
>
> from django.urls import reverse_lazy
> from django.views.generic import RedirectView
>
> and the following line in the urlpatterns:
>
> url(r'^$', RedirectView.as_view(url=reverse_lazy ('list_index'),
> permanent=True)),
>
>
> The 'list_index' undefined error does not come up, however the HTTP
> Error 404 I posted in my last message still shows up. I abstracted the
> following from the error log as a potential cause:
>
> Traceback (most recent call last):
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
> response = wrapped_callback(request, *callback_args,
> **callback_kwargs)
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/postorius/views/list.py", line 779, in list_index
> paginator_class=MailmanPaginator)
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/django_mailman3/lib/paginator.py", line 71, in paginate
> objects = paginator.page(page_num)
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/django_mailman3/lib/paginator.py", line 46, in page
> number = self.validate_number(number)
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/django/core/paginator.py", line 48, in validate_number
> if number > self.num_pages:
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
> res = instance.__dict__[self.name] = self.func(instance)
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/django/core/paginator.py", line 97, in num_pages
> if self.count == 0 and not self.allow_empty_first_page:
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
> res = instance.__dict__[self.name] = self.func(instance)
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/django_mailman3/lib/paginator.py", line 56, in count
> return self.function(count=0, page=1).total_size
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/postorius/views/list.py", line 775, in _get_list_page
> advertised=advertised, mail_host=mail_host, count=count, page=page)
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/mailmanclient/client.py", line 181, in get_list_page
> return Page(self._connection, url, MailingList, count, page)
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/mailmanclient/restbase/page.py", line 37, in __init__
> self._create_page()
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/mailmanclient/restbase/page.py", line 62, in _create_page
> response, content = self._connection.call(self._build_url())
> File
> "/opt/mailman/venv/lib/python3.6/site-packages/mailmanclient/restbase/connection.py", line 112, in call
> error_msg, response, None)
> urllib.error.HTTPError: HTTP Error 404:
>
>
> I would appreciate any insight.
This is trying to reach Mailman core and getting a 404 response from Mailman Core.
Do you have Core running? Which version of Core are you running?
>
> Thank you.
>
> Regards,
> Jane
> _______________________________________________
> 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/
>
--
thanks,
Abhilash Raj (maxking)
4 years, 2 months
Re: Things I miss about mailman2
by Mark Sapiro
On 3/17/20 8:58 AM, Quanah Gibson-Mount wrote:
> Now that we are on mailman3, I'm finding things that were really useful
> in mailman2 are completely missing in mailman3, which seems odd, since
> they in particular affect the ability of list moderators to do their job
> well.
>
> a) When a post was made to a moderated list in mailman2, I would get an
> email that included a LINK to the held email. Now I just get a canned
> email saying I need to go to the dashboard, blah blah. Why was this
> link removed? It was extremely useful and now I have to jump through
> extra hoops.
The message comes from Mailman core. Mailman core does not know what
web management UI you are using or the URI to access it. You need to
change the template for the message to include the URL. E.g. on this
iist, in var/templates/sitr/en/list\:admin\:action\:post.txt we have
As list administrator, your authorization is requested for the
following mailing list posting:
List: $listname
From: $sender_email
Subject: $subject
The message is being held because:
$reasons
At your convenience, visit
https://lists.mailman3.org/mailman3/lists/$list_id/held_messages
to approve or deny the request.
> b) When a post is made to a moderated list in mailman2, when I went to
> the page to approve/deny/discard, there was additionally an option to
> remove the moderated flag from the user for all future emails. This
> option no longer exists. This was EXTREMELY useful, as we force all new
> members of the list to be moderated for a time while we evaluate the
> quality of their postings. Now I have to go manually track down the
> user and their settings. Unnecessary extra hoops to jump through
Click on the subject in the held messages list. At the bottom of the
dialog that opens, there is a drop down to set the user's moderation.
Normally, you would set it to 'default processing'.
> c) When a post is made to a moderated list, one of the options when
> selecting REJECT was it allowed me to set a custom message when
> rejecting the email. This was extremely useful. For example today,
> someone emailed our bug tracking list directly instead of filing a bug.
> In the past, I would have added a note to them about what they should do
> (in this case, I would have told them to send their email to our
> community technical discussion list). Now I can no longer do that, I
> can only reject it or discard it. Why was this removed?
This was not "removed". It just hasn't been implemented in MM 3 yet.
See, e.g., <https://gitlab.com/mailman/postorius/-/issues/368> and
<https://gitlab.com/mailman/postorius/-/issues/368>.
--
Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
4 years, 8 months
Re: Send MySQL data to mailman list for distribution
by Ruth Ivimey-Cook
Hi,
Your request is not particularly clear -- telling us what the end goal
is would help -- but I think the answer is neither the mailman menu nor
the phpmyadmin can do what you want.
That is assuming that you want to send some tabular information to
people via email, where the recipients are managed via mailman.
Consider the parts of your process:
1) some data source, which you have not mentioned.
2) something that stores data from the source into MySQL tables.
3) something that creates html page text from the MySQL tables, that
can be delivered by an http server.
4) something that creates an email message from the data in the MySQL
tables.
5) something that sends the email message to an MTA (such as exim,
postfix, etc).
6) something that stores and manages the email recipients to whom the
data is sent (= Mailman + postorius etc).
I think you must have something that manages (1), (2), and (3), as you
mention that you have a web page that works. This solution likely uses
php and nginx.
[ Note that a web page never sends an email. It is possible for (eg) PHP
programs to send an email, and it can be the case that a php program
that is generating html for a web page can also generate an email
message and send it, but that is to conflate two quite different
processes unnecessarily. ]
You still need (4) and (5), which mailman cannot help with but for which
libraries like PHPMailer, and programs like exim, can help.
The message to your recipients will be sent in (5) to mailman using an
email address to mailman core which is set up as a posting non-member of
the list, so it doesn't also get copies of mails sent.
Hope this helps,
Ruth
On 01/06/2021 21:46, Zden Pos via Mailman-users wrote:
> I'm trying to connect existing MySQL data to the Mailman distribution list.
> Actually, a message is sent from the web page. It remains on this page and is also stored in the MySQL table on the provider server. This is working fine.
> I have also existing Mailman distribution list generated from the cPanel on the provider server as well. This list is working fine when used for a direct mailing.
>
> I need to link the MySQL table to the Mailman distribution list. When the message is posted on the web page and stored in the MySQL table, it is also to be sent to members as per the Mailman distribution list. I don't know where to configure it. In the phpMyAdmn page of the MySQL or in the Malman menu ?
>
> Thank you for your help
> _______________________________________________
> 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/
--
Software Manager & Engineer
Tel: 01223 414180
Blog: http://www.ivimey.org/blog
LinkedIn: http://uk.linkedin.com/in/ruthivimeycook/
3 years, 5 months
New installation, new issue: mailman3 migrate -- no module CommonMark
by Bill Oliver
My Ubuntu 24.04 installation is working great, and I have a list
running perfectly. I'm now trying to install mailman3 on an older
server, this time runing ubuntu 22.04. I'm following the venv
installation instructions again, but suddenly came up with a new error.
I've made it to the "Run database migrations" section I run
mailmanweb-migrate and get:
(venv) mailman@mail:~$ mailman-web migrate
Traceback (most recent call last):
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/template/backends/django.py", line 128, in
get_package_libraries
module = import_module(entry[1])
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in
import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in
_find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in
exec_module
File "<frozen importlib._bootstrap>", line 241, in
_call_with_frames_removed
File "/opt/mailman/venv/lib/python3.10/site-
packages/postorius/templatetags/markdown.py", line 21, in <module>
from readme_renderer import markdown as md_render
File "/opt/mailman/venv/lib/python3.10/site-
packages/readme_renderer/markdown.py", line 16, in <module>
from CommonMark import commonmark
ModuleNotFoundError: No module named 'CommonMark'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/mailman/venv/bin/mailman-web", line 8, in <module>
sys.exit(main())
File "/opt/mailman/venv/lib/python3.10/site-
packages/mailman_web/manage.py", line 87, in main
execute_from_command_line(sys.argv)
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/management/__init__.py", line 442, in
execute_from_command_line
utility.execute()
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/management/base.py", line 412, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/management/base.py", line 458, in execute
output = self.handle(*args, **options)
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/management/base.py", line 106, in wrapper
res = handle_func(*args, **kwargs)
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/management/commands/migrate.py", line 100, in
handle
self.check(databases=[database])
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/management/base.py", line 485, in check
all_issues = checks.run_checks(
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/checks/registry.py", line 88, in run_checks
new_errors = check(app_configs=app_configs, databases=databases)
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/core/checks/templates.py", line 60, in
check_for_template_tags_with_the_same_name
for module_name, module_path in get_template_tag_modules():
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/template/backends/django.py", line 105, in
get_template_tag_modules
for name in get_package_libraries(pkg):
File "/opt/mailman/venv/lib/python3.10/site-
packages/django/template/backends/django.py", line 130, in
get_package_libraries
raise InvalidTemplateLibrary(
django.template.library.InvalidTemplateLibrary: Invalid template
library specified. ImportError raised when trying to load
'postorius.templatetags.markdown': No mod
ule named 'CommonMark'
I know nothing about CommonMark.
Since I've suffered the error cascade problem of trying to fix things
and just making it worse, I stopped here.
Can I ignore this error, or what can I do to fix it?
Thanks!
billo
1 month
Re: Apache Conf
by Thomas G
Yes, of course.
Nginx and Apache works on the same server. (Nginx is stopped)
I would like switch to Apache to add in front of hyperkitty a ldap
connection.
I need to re-compile nginx for this feature. It's directly available in
apache with a module.
In fact, a tried directly to integrade LDAP with django (
https://gitlab.com/mailman/postorius/issues/132), without results.
Le ven. 19 oct. 2018 à 20:18, Abhilash Raj <maxking(a)asynchronous.in> a
écrit :
>
>
> On Fri, Oct 19, 2018, at 12:17 PM, Thomas G wrote:
> > Hi tried both.
> >
> > Same result.
> >
> > xxxx - - [19/Oct/2018:21:14:22 +0200] "GET /static/postorius/js/script.js
> > HTTP/1.1" 404 4051 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:60.0)
> > Gecko/20100101 Firefox/60.0"
>
>
> And, you have verified that the files exist at `/opt/mailman/static` on
> your host?
>
> >
> >
> > Le ven. 19 oct. 2018 à 18:59, Mark Sapiro <mark(a)msapiro.net> a écrit :
> >
> > > On 10/19/18 10:29 AM, Guiseppin Thomas wrote:
> > > > Hi,
> > > > Currently, I use a nginx configuration for mailman. It's work
> perfectly.
> > > >
> > > > I tried to do the same with Apache, but the statics files are not
> > > > delivered (404).
> > > ...
> > > > <VirtualHost *:80>
> > > > ServerName mailing.ddd.fr
> > > >
> > > > ErrorLog ${APACHE_LOG_DIR}/mailing.error.log
> > > > CustomLog ${APACHE_LOG_DIR}/mailing.access.log combined
> > > >
> > > > <Location /static/>
> > > > Alias "/opt/mailman/static/"
> > > > </Location>
> > > >
> > > > <Location />
> > > > ProxyPass http://localhost:8000/
> > > > ProxyPassReverse http://localhost:8000/
> > > > ProxyPreserveHost On
> > > > </Location>
> > > > </VirtualHost>/
> > >
> > >
> > > In Apache, location
> > > <http://httpd.apache.org/docs/2.4/mod/core.html#location> is not
> > > appropriate for resources in the file system.
> > >
> > > Try
> > >
> > > Alias /static/ /opt/mailman/static/
> > >
> > > not within a location block.
> > >
> > > --
> > > Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
> > > San Francisco Bay Area, California better use your sense - B. Dylan
> > > _______________________________________________
> > > Mailman-users mailing list -- mailman-users(a)mailman3.org
> > > To unsubscribe send an email to mailman-users-leave(a)mailman3.org
> > > https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> > >
> > _______________________________________________
> > 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/
>
>
> --
> thanks,
> Abhilash Raj (maxking)
>
6 years, 1 month