Hi everyone, if I write a my lists from other email address I get the correct message: opendkim[23516]: 8EEE440FFD: DKIM-Signature field added (s=mailselector, d=catania.linux.it).
While if I write to a my lists from email address Gmail, on opendkim I get the following messages: opendkim[23516]: BA95241952: no signing table match for 'maszap69@gmail.com' opendkim[23516]: BA95241952: s=20161025 d=gmail.com SSL error:04091068:rsa routines:int_rsa_verify:bad signature opendkim[23516]: BA95241952: bad signature data
The message is received regularly by all members of the list. I also receive an email at superuser:
[Django] ERROR (EXTERNAL IP): Internal Server Error: /hyperkitty/api/mailman/archive
Internal Server Error: /hyperkitty/api/mailman/archive
OperationalError at /hyperkitty/api/mailman/archive
(1366, "Incorrect string value: '\\xF0\\x9F\\x98\\xB1\\xF0\\x9F...' for column mailman3web
.hyperkitty_email
.content
at row 1")
...
If I check with mail-tester I get 10/10 If I check with dmarcanalyzer I get "This seems to be a valid DKIM Record." I don't understand where the problem is. Could anyone tell me how to solve?
Thank you in advance Max
On 9/19/20 10:11 AM, Massimo Zappalà wrote:
Hi everyone, if I write a my lists from other email address I get the correct message: opendkim[23516]: 8EEE440FFD: DKIM-Signature field added (s=mailselector, d=catania.linux.it).
While if I write to a my lists from email address Gmail, on opendkim I get the following messages: opendkim[23516]: BA95241952: no signing table match for 'maszap69@gmail.com' opendkim[23516]: BA95241952: s=20161025 d=gmail.com SSL error:04091068:rsa routines:int_rsa_verify:bad signature opendkim[23516]: BA95241952: bad signature data
OpenDKIM on your server is not signing the message because it is not configured to sign messages From: 'maszap69@gmail.com'
What's in your opendkim SigningTable and what's in your opendkim.conf for SenderHeaders.
The recommend config is
SenderHeaders List-Post,Sender,From
to use the domain of the list for signing list mail and then to include that domain in SigningTable.
I also receive an email at superuser:
[Django] ERROR (EXTERNAL IP): Internal Server Error: /hyperkitty/api/mailman/archive
Internal Server Error: /hyperkitty/api/mailman/archive OperationalError at /hyperkitty/api/mailman/archive (1366, "Incorrect string value: '\\xF0\\x9F\\x98\\xB1\\xF0\\x9F...' for column
mailman3web
.hyperkitty_email
.content
at row 1") ...
This appears to be unrelated. HyperKitty is trying to store the message
in the database hyperkitty_email table and gets this error. To say more,
I'd need to see the complete raw message which you may be able to find
in Mailman's var/archives/prototype/ --
Mark Sapiro mark@msapiro.net The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
Hi Mark, thanks for the reply.
my /etc/opendkim.conf AutoRestart Yes AutoRestartRate 10/1h UMask 002 Syslog yes SyslogSuccess Yes LogWhy Yes Canonicalization relaxed/simple ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts KeyTable refile:/etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable Mode sv PidFile /var/run/opendkim/opendkim.pid SignatureAlgorithm rsa-sha256 UserID opendkim:opendkim Socket inet:12301@localhost
my /etc/opendkim/SigningTable *@catania.linux.it mailselector._domainkey.catania.linux.it
full email django error Internal Server Error: /hyperkitty/api/mailman/archive
OperationalError at /hyperkitty/api/mailman/archive
(1366, "Incorrect string value: '\\xF0\\x9F\\x98\\xB1\\xF0\\x9F...' for column mailman3web
.hyperkitty_email
.content
at row 1")
Request Method: POST Request URL: https://lists.catania.linux.it/hyperkitty/api/mailman/archive?key=mykey Django Version: 1.11.29 Python Executable: /usr/bin/uwsgi-core Python Version: 3.7.3 Python Path: ['.', '', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages'] Server time: Sab, 19 Set 2020 20:05:41 +0200 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:
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py" in execute 64. return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/mysql/base.py" in execute 101. return self.cursor.execute(query, args)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py" in execute 250. self.errorhandler(self, exc, value)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py" in defaulterrorhandler 50. raise errorvalue
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py" in execute 247. res = self._query(query)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py" in _query 411. rowcount = self._do_query(q)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py" in _do_query 374. db.query(q)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py" in query 292. _mysql.connection.query(self, query)
The above exception ((1366, "Incorrect string value: '\\xF0\\x9F\\x98\\xB1\\xF0\\x9F...' for column `mailman3web`.`hyperkitty_email`.`content` at row 1")) was the direct cause of the following exception:
File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3/dist-packages/django/views/decorators/http.py" in inner 40. return func(request, *args, **kwargs)
File "/usr/lib/python3/dist-packages/hyperkitty/views/mailman.py" in _decorator 69. return func(request, *args, **kwargs)
File "/usr/lib/python3/dist-packages/django/views/decorators/csrf.py" in wrapped_view 58. return view_func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/hyperkitty/views/mailman.py" in archive 115. add_to_list(mlist_fqdn, msg)
File "/usr/lib/python3/dist-packages/hyperkitty/lib/incoming.py" in add_to_list 151. email.save()
File "/usr/lib/python3/dist-packages/django/db/models/base.py" in save 808. force_update=force_update, update_fields=update_fields)
File "/usr/lib/python3/dist-packages/django/db/models/base.py" in save_base 838. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/lib/python3/dist-packages/django/db/models/base.py" in _save_table 924. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/usr/lib/python3/dist-packages/django/db/models/base.py" in _do_insert 963. using=using, raw=raw)
File "/usr/lib/python3/dist-packages/django/db/models/manager.py" in manager_method 85. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/lib/python3/dist-packages/django/db/models/query.py" in _insert 1079. return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/lib/python3/dist-packages/django/db/models/sql/compiler.py" in execute_sql 1112. cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py" in execute 64. return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/utils.py" in __exit__ 94. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/lib/python3/dist-packages/django/utils/six.py" in reraise 685. raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py" in execute 64. return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/mysql/base.py" in execute 101. return self.cursor.execute(query, args)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py" in execute 250. self.errorhandler(self, exc, value)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py" in defaulterrorhandler 50. raise errorvalue
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py" in execute 247. res = self._query(query)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py" in _query 411. rowcount = self._do_query(q)
File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py" in _do_query 374. db.query(q)
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py" in query 292. _mysql.connection.query(self, query)
Exception Type: OperationalError at /hyperkitty/api/mailman/archive
Exception Value: (1366, "Incorrect string value: '\\xF0\\x9F\\x98\\xB1\\xF0\\x9F...' for column mailman3web
.hyperkitty_email
.content
at row 1")
Request information:
USER: AnonymousUser
GET: key = 'mykey'
POST: mlist = 'lug@catania.linux.it'
FILES:
message =
COOKIES: No cookie data
META:
CONTENT_LENGTH = '2485'
CONTENT_TYPE = 'multipart/form-data; boundary=3fc2cf34ecf58287e2b148ab43b4b111'
DOCUMENT_ROOT = '/usr/share/nginx/html'
HTTPS = 'on'
HTTP_ACCEPT = '*/*'
HTTP_ACCEPT_ENCODING = 'gzip, deflate'
HTTP_CONNECTION = 'keep-alive'
HTTP_CONTENT_LENGTH = '2485'
HTTP_CONTENT_TYPE = 'multipart/form-data; boundary=3fc2cf34ecf58287e2b148ab43b4b111'
HTTP_HOST = 'lists.catania.linux.it'
HTTP_USER_AGENT = 'python-requests/2.21.0'
PATH_INFO = '/hyperkitty/api/mailman/archive'
QUERY_STRING = 'key=mykey'
REMOTE_ADDR = '95.216.191.209'
REMOTE_PORT = '35022'
REQUEST_METHOD = 'POST'
REQUEST_SCHEME = 'https'
REQUEST_URI = '/hyperkitty/api/mailman/archive?key=mykey'
SCRIPT_NAME = ''
SERVER_NAME = 'lists.catania.linux.it'
SERVER_PORT = '443'
SERVER_PROTOCOL = 'HTTP/1.1'
uwsgi.core = 0
uwsgi.node = b'glugct.catania.linux.it'
uwsgi.version = b'2.0.18-debian'
wsgi.errors = <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
wsgi.file_wrapper = ''
wsgi.input =
Settings:
Using settings module settings
ABSOLUTE_URL_OVERRIDES = {}
ACCOUNT_AUTHENTICATION_METHOD = 'username_email'
ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_UNIQUE_EMAIL = True
ADMINS = "(('Mailman Suite Admin', 'admin@catania.linux.it'),)"
ALLOWED_HOSTS = ['*']
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 = '/usr/share/mailman3-web'
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
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_COMPRESSOR = 'compressor.css.CssCompressor'
COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter']
COMPRESS_CSS_HASHING_METHOD = 'mtime'
COMPRESS_DATA_URI_MAX_SIZE = 1024
COMPRESS_DEBUG_TOGGLE = None
COMPRESS_ENABLED = True
COMPRESS_JINJA2_GET_ENVIRONMENT =
Max
On 9/19/20 12:33 PM, Massimo Zappalà wrote:
Hi Mark, thanks for the reply.
my /etc/opendkim.conf AutoRestart Yes AutoRestartRate 10/1h UMask 002 Syslog yes SyslogSuccess Yes LogWhy Yes Canonicalization relaxed/simple ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts KeyTable refile:/etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable Mode sv PidFile /var/run/opendkim/opendkim.pid SignatureAlgorithm rsa-sha256 UserID opendkim:opendkim Socket inet:12301@localhost
my /etc/opendkim/SigningTable *@catania.linux.it mailselector._domainkey.catania.linux.it
Assuminng your list's domain is catania.linux.it, what you need to do to enable DKIM signing of this message is add
SenderHeaders List-Post,Sender,From
to /etc/opendkim.conf
full email django error Internal Server Error: /hyperkitty/api/mailman/archive
OperationalError at /hyperkitty/api/mailman/archive (1366, "Incorrect string value: '\\xF0\\x9F\\x98\\xB1\\xF0\\x9F...' for column
mailman3web
.hyperkitty_email
.content
at row 1")
Unfortunately, the rest of the detail doesn't help. What we need to see
is the raw message. You should be able to find it in Mailman's
var/archives/prototype/ --
Mark Sapiro mark@msapiro.net The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
Hi Mark, For opendkim, I solved as you indicated Add SenderHeaders List-Post,Sender,From to /etc/opendkim.conf
For Hyperkitty I solved editing my /etc/mailman3/mailman-web.py and append 'charset': 'utf8mb4', DATABASES = { 'default': { # Use 'sqlite3', 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. #'ENGINE': 'django.db.backends.sqlite3', #'ENGINE': 'django.db.backends.postgresql_psycopg2', 'ENGINE': 'django.db.backends.mysql', # DB name or path to database file if using sqlite3. 'NAME': 'mailman3web', # The following settings are not used with sqlite3: 'USER': 'mailman3web', 'PASSWORD': 'mypass', # HOST: empty for localhost through domain sockets or '127.0.0.1' for # localhost through TCP. 'HOST': 'localhost', # PORT: set to empty string for default. 'PORT': '', # OPTIONS: Extra parameters to use when connecting to the database. 'OPTIONS': { # Set sql_mode to 'STRICT_TRANS_TABLES' for MySQL. See # https://docs.djangoproject.com/en/1.11/ref/ # databases/#setting-sql-mode 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", 'charset': 'utf8mb4', }, } }
Thanks Max
participants (2)
-
Mark Sapiro
-
Massimo Zappalà