[GH-ISSUE #3583] webmail gives a blank page #1860

Closed
opened 2026-02-27 11:19:34 +03:00 by kerem · 37 comments
Owner

Originally created by @1stoneofjordan on GitHub (Jul 16, 2025).
Original GitHub issue: https://github.com/modoboa/modoboa/issues/3583

Impacted versions

  • OS Type: Debian
  • OS Version: 12
  • Database Type: PostgreSQL
  • Database version: 15.13 (Debian 15.13-0+deb12u1)
  • Modoboa: 2.4.2
  • installer used: Yes
  • Webserver: nginx/1.22.1 uwsgi/2.0.21-debian

Steps to reproduce

try to make use of integrated webmail interface
All is working fine Postfix and Dovecot works as expected
sent testmail and dovecote create all folders
radicale/calendar is working

Current behavior

Try to use webmail gives a blank page
Nginx :
[16/Jul/2025:10:30:19 +0200] "GET /api/v2/webmail/mailboxes/ HTTP/2.0" 404 47 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
uwsgi:
mail.papageno.at [pid: 1170|app: 1|req: 116/416] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 10:30:19 2025] GET /api/v2/webmail/mailboxes/ => generated 47 bytes in 172 msecs (HTTP/2.0 404) 5 headers in 160 bytes (1 switches on core 0)

Expected behavior

Seeing a Webmail interface instead a blank page

Video/Screenshot link (optional)

Originally created by @1stoneofjordan on GitHub (Jul 16, 2025). Original GitHub issue: https://github.com/modoboa/modoboa/issues/3583 # Impacted versions * OS Type: Debian * OS Version: 12 * Database Type: PostgreSQL * Database version: 15.13 (Debian 15.13-0+deb12u1) * Modoboa: 2.4.2 * installer used: Yes * Webserver: nginx/1.22.1 uwsgi/2.0.21-debian # Steps to reproduce try to make use of integrated webmail interface All is working fine Postfix and Dovecot works as expected sent testmail and dovecote create all folders radicale/calendar is working # Current behavior Try to use webmail gives a blank page Nginx : [16/Jul/2025:10:30:19 +0200] "GET /api/v2/webmail/mailboxes/ HTTP/2.0" 404 47 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" uwsgi: mail.papageno.at [pid: 1170|app: 1|req: 116/416] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 10:30:19 2025] GET /api/v2/webmail/mailboxes/ => generated 47 bytes in 172 msecs (HTTP/2.0 404) 5 headers in 160 bytes (1 switches on core 0) <!-- Explain the behavior you're seeing that you think is a bug, and explain how you think things should behave instead. Use of Webmail shows me a blank page I should see a Webmailinterface (like modoboa 2.3.7 i have in use to) --> # Expected behavior Seeing a Webmail interface instead a blank page # Video/Screenshot link (optional)
kerem closed this issue 2026-02-27 11:19:34 +03:00
Author
Owner

@tonioo commented on GitHub (Jul 16, 2025):

@1stoneofjordan I guess you mean 2.4.1 ?
What type of user do you use?

<!-- gh-comment-id:3078131688 --> @tonioo commented on GitHub (Jul 16, 2025): @1stoneofjordan I guess you mean 2.4.1 ? What type of user do you use?
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

Thank you for your fat repyl
opps sorry typo ! your right 2.4.1
I use atm domain admin users

<!-- gh-comment-id:3078176433 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): Thank you for your fat repyl opps sorry typo ! your right 2.4.1 I use atm domain admin users
Author
Owner

@tonioo commented on GitHub (Jul 16, 2025):

And you confirm this domain admin has a mailbox?

<!-- gh-comment-id:3078223686 --> @tonioo commented on GitHub (Jul 16, 2025): And you confirm this domain admin has a mailbox?
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

yes i sent mail via shell on mail gateway and mail comes folders are created on modoboa
my first thought was : if the folders not created by incoming mail there is no webmail so i sent a mail

Jul 15 13:36:30 mail postfix/lmtp[3626]: 32B16607FE: to=admin@papageno.at, relay=mail.papageno.at[private/dovecot-lmtp], delay=0.17, delays=0.07/0.04/0.04/0.02, dsn=2.1.5, status=deliverable (250 2.1.5 OK)

Jul 15 13:36:35 mail amavis[1191]: (01191-01) Passed CLEAN {RelayedOpenRelay}, [192.168.216.50]:33192 [94.136.29.244] postmaster@pmg.papageno.at -> admin@papageno.at, Message-ID: 20250715113629.3CE12161309@pmg.papageno.at, mail_id: MFNXD9Gwg8AV, Hits: -1.709, size: 2471, queued_as: 5689561741, 2222 ms

Jul 15 13:36:35 mail postfix/smtpd[3612]: proxy-accept: END-OF-MESSAGE: 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 5689561741; from=postmaster@pmg.papageno.at to=admin@papageno.at proto=ESMTP helo=<pmg.papageno.at>

Jul 15 13:36:35 mail dovecot[556]: lmtp(admin@papageno.at)<3627>: msgid=20250715113629.3CE12161309@pmg.papageno.at: saved mail to INBOX

Jul 15 13:36:35 mail postfix/lmtp[3626]: 5689561741: to=admin@papageno.at, relay=mail.papageno.at[private/dovecot-lmtp], delay=0.26, delays=0.07/0.01/0/0.17, dsn=2.0.0, status=sent (250 2.0.0 admin@papageno.at WBp5GUM9dmgrDgAAeX0t1Q Saved)

Here the ls of the location
I
ls -la /srv/vmail/papageno.at/admin/Maildir/
insgesamt 40
drwx------ 5 vmail vmail 4096 15. Jul 13:36 .
drwx------ 3 vmail vmail 4096 15. Jul 13:36 ..
drwx------ 2 vmail vmail 4096 15. Jul 13:36 cur
-rw------- 1 vmail vmail 684 15. Jul 13:36 dovecot.index.cache
-rw------- 1 vmail vmail 344 15. Jul 13:36 dovecot.index.log
-rw------- 1 vmail vmail 452 15. Jul 13:36 dovecot.list.index.log
-rw------- 1 vmail vmail 97 15. Jul 13:36 dovecot-uidlist
-rw------- 1 vmail vmail 8 15. Jul 13:36 dovecot-uidvalidity
-r--r--r-- 1 vmail vmail 0 15. Jul 13:36 dovecot-uidvalidity.68763d43
-rw------- 1 vmail vmail 0 15. Jul 13:36 maildirfolder
drwx------ 2 vmail vmail 4096 15. Jul 13:36 new
drwx------ 2 vmail vmail 4096 15. Jul 13:36 tmp

<!-- gh-comment-id:3078284772 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): yes i sent mail via shell on mail gateway and mail comes folders are created on modoboa my first thought was : if the folders not created by incoming mail there is no webmail so i sent a mail Jul 15 13:36:30 mail postfix/lmtp[3626]: 32B16607FE: to=<admin@papageno.at>, relay=mail.papageno.at[private/dovecot-lmtp], delay=0.17, delays=0.07/0.04/0.04/0.02, dsn=2.1.5, status=deliverable (250 2.1.5 OK) Jul 15 13:36:35 mail amavis[1191]: (01191-01) Passed CLEAN {RelayedOpenRelay}, [192.168.216.50]:33192 [94.136.29.244] <postmaster@pmg.papageno.at> -> <admin@papageno.at>, Message-ID: <20250715113629.3CE12161309@pmg.papageno.at>, mail_id: MFNXD9Gwg8AV, Hits: -1.709, size: 2471, queued_as: 5689561741, 2222 ms Jul 15 13:36:35 mail postfix/smtpd[3612]: proxy-accept: END-OF-MESSAGE: 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 5689561741; from=<postmaster@pmg.papageno.at> to=<admin@papageno.at> proto=ESMTP helo=<pmg.papageno.at> Jul 15 13:36:35 mail dovecot[556]: lmtp(admin@papageno.at)<3627><WBp5GUM9dmgrDgAAeX0t1Q>: msgid=<20250715113629.3CE12161309@pmg.papageno.at>: saved mail to INBOX Jul 15 13:36:35 mail postfix/lmtp[3626]: 5689561741: to=<admin@papageno.at>, relay=mail.papageno.at[private/dovecot-lmtp], delay=0.26, delays=0.07/0.01/0/0.17, dsn=2.0.0, status=sent (250 2.0.0 <admin@papageno.at> WBp5GUM9dmgrDgAAeX0t1Q Saved) Here the ls of the location I ls -la /srv/vmail/papageno.at/admin/Maildir/ insgesamt 40 drwx------ 5 vmail vmail 4096 15. Jul 13:36 . drwx------ 3 vmail vmail 4096 15. Jul 13:36 .. drwx------ 2 vmail vmail 4096 15. Jul 13:36 cur -rw------- 1 vmail vmail 684 15. Jul 13:36 dovecot.index.cache -rw------- 1 vmail vmail 344 15. Jul 13:36 dovecot.index.log -rw------- 1 vmail vmail 452 15. Jul 13:36 dovecot.list.index.log -rw------- 1 vmail vmail 97 15. Jul 13:36 dovecot-uidlist -rw------- 1 vmail vmail 8 15. Jul 13:36 dovecot-uidvalidity -r--r--r-- 1 vmail vmail 0 15. Jul 13:36 dovecot-uidvalidity.68763d43 -rw------- 1 vmail vmail 0 15. Jul 13:36 maildirfolder drwx------ 2 vmail vmail 4096 15. Jul 13:36 new drwx------ 2 vmail vmail 4096 15. Jul 13:36 tmp
Author
Owner

@tonioo commented on GitHub (Jul 16, 2025):

Can you check that /etc/dovecot/conf.d/dovecot-oauth2.conf.ext file exists?

<!-- gh-comment-id:3078307395 --> @tonioo commented on GitHub (Jul 16, 2025): Can you check that /etc/dovecot/conf.d/dovecot-oauth2.conf.ext file exists?
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

exist
ls -la /etc/dovecot/conf.d/dovecot-oauth2.conf.ext
-rw-r--r-- 1 root root 334 15. Jul 12:19 /etc/dovecot/conf.d/dovecot-oauth2.conf.ext

<!-- gh-comment-id:3078316562 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): exist ls -la /etc/dovecot/conf.d/dovecot-oauth2.conf.ext -rw-r--r-- 1 root root 334 15. Jul 12:19 /etc/dovecot/conf.d/dovecot-oauth2.conf.ext
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

can it be it comes from the self signed cert ?
i have more probs now :
i created a normal user and dont have permission to change language for example
logs give me :

Jul 16 14:13:33 mail dovecot[556]: auth: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?)
dovecot[556]: auth: Error: oauth2(thomas.hoeferer@papageno.at,127.0.0.1,<Nmvm0Qo6Got/AAAB>): oauth2 failed: Introspection failed: SSL handshaking with 192.168.216.40:443 failed: read(SSL (conn:192.168.216.40:443,id=1)) failed: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?)

Becouse self signed cert dont have a CA

<!-- gh-comment-id:3078327153 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): can it be it comes from the self signed cert ? i have more probs now : i created a normal user and dont have permission to change language for example logs give me : Jul 16 14:13:33 mail dovecot[556]: auth: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?) dovecot[556]: auth: Error: oauth2(thomas.hoeferer@papageno.at,127.0.0.1,<Nmvm0Qo6Got/AAAB>): oauth2 failed: Introspection failed: SSL handshaking with 192.168.216.40:443 failed: read(SSL (conn:192.168.216.40:443,id=1)) failed: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?) Becouse self signed cert dont have a CA
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

this comes if try to sccess sieve filters under normal user
Jul 16 14:20:08 mail dovecot[556]: auth: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?)
Jul 16 14:20:08 mail dovecot[556]: auth: Error: oauth2(thomas.hoeferer@papageno.at,127.0.0.1,<c4jp6Qo6oq1/AAAB>): oauth2 failed: Introspection failed: SSL handshaking with 192.168.216.40:443 failed: read(SSL (conn:192.168.216.40:443,id=3)) failed: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?)
Jul 16 14:20:14 mail dovecot[556]: managesieve-login: Disconnected: Connection closed (client didn't finish SASL auth, waited 33 secs): user=thomas.hoeferer@papageno.at, method=OAUTHBEARER, rip=127.0.0.1, lip=127.0.0.1, secured, session=<oFVI6Ao68sJ/AAAB>
Jul 16 14:20:18 mail dovecot[556]: auth: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?)
Jul 16 14:20:18 mail dovecot[556]: auth: Error: oauth2(thomas.hoeferer@papageno.at,127.0.0.1,<7f086go6GsN/AAAB>): oauth2 failed: Introspection failed: SSL handshaking with 192.168.216.40:443 failed: read(SSL (conn:192.168.216.40:443,id=4)) failed: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?)

<!-- gh-comment-id:3078333940 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): this comes if try to sccess sieve filters under normal user Jul 16 14:20:08 mail dovecot[556]: auth: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?) Jul 16 14:20:08 mail dovecot[556]: auth: Error: oauth2(thomas.hoeferer@papageno.at,127.0.0.1,<c4jp6Qo6oq1/AAAB>): oauth2 failed: Introspection failed: SSL handshaking with 192.168.216.40:443 failed: read(SSL (conn:192.168.216.40:443,id=3)) failed: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?) Jul 16 14:20:14 mail dovecot[556]: managesieve-login: Disconnected: Connection closed (client didn't finish SASL auth, waited 33 secs): user=<thomas.hoeferer@papageno.at>, method=OAUTHBEARER, rip=127.0.0.1, lip=127.0.0.1, secured, session=<oFVI6Ao68sJ/AAAB> Jul 16 14:20:18 mail dovecot[556]: auth: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?) Jul 16 14:20:18 mail dovecot[556]: auth: Error: oauth2(thomas.hoeferer@papageno.at,127.0.0.1,<7f086go6GsN/AAAB>): oauth2 failed: Introspection failed: SSL handshaking with 192.168.216.40:443 failed: read(SSL (conn:192.168.216.40:443,id=4)) failed: Received invalid SSL certificate: self-signed certificate: /CN=mail.papageno.at (check ssl_client_ca_* settings?)
Author
Owner

@tonioo commented on GitHub (Jul 16, 2025):

Good catch. Indeed, you need a valid certificate to make OpenID authentication work smoothly

<!-- gh-comment-id:3078356959 --> @tonioo commented on GitHub (Jul 16, 2025): Good catch. Indeed, you need a valid certificate to make OpenID authentication work smoothly
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

i created a normal user named thomas.hoefere@papageno.at
Settings in domain and ad,im are unlimited for testing
i log in :
mail modoboa.auth[224356]: INFO User 'thomas.hoeferer@papageno.at' successfully logged in

192.168.216.40 = modoboa
192.168.216.50 = mail gateway

i send from gw a mail to this user and get :

Jul 16 14:23:09 mail postfix/smtpd[230686]: connect from unknown[192.168.216.50]
Jul 16 14:23:09 mail postfix/smtpd[230686]: Anonymous TLS connection established from unknown[192.168.216.50]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)

Jul 16 14:23:09 mail postfix/smtpd[230686]: NOQUEUE: reject: RCPT from unknown[192.168.216.50]: 550 5.1.1 thomas.hoeferer@papageno.at: Recipient address rejected: undeliverable address: host mail.papageno.at[private/dovecot-lmtp] said: 550 5.1.1 thomas.hoeferer@papageno.at User doesn't exist: thomas.hoeferer@papageno.at (in reply to RCPT TO command); from=<> to=thomas.hoeferer@papageno.at proto=ESMTP helo=<pmg.papageno.at>

Jul 16 14:23:09 mail postfix/smtpd[230686]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "thomas.hoeferer@papageno.at" from client "unknown[192.168.216.50]"

Jul 16 14:23:09 mail postfix/smtpd[230686]: disconnect from unknown[192.168.216.50] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8

Jul 16 14:23:14 mail dovecot[556]: managesieve-login: Disconnected: Inactivity (client didn't finish SASL auth, waited 180 secs): user=thomas.hoeferer@papageno.at, method=OAUTHBEARER, rip=127.0.0.1, lip=127.0.0.1, secured, session=<7f086go6GsN/AAAB>

<!-- gh-comment-id:3078357336 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): i created a normal user named thomas.hoefere@papageno.at Settings in domain and ad,im are unlimited for testing i log in : mail modoboa.auth[224356]: INFO User 'thomas.hoeferer@papageno.at' successfully logged in 192.168.216.40 = modoboa 192.168.216.50 = mail gateway i send from gw a mail to this user and get : Jul 16 14:23:09 mail postfix/smtpd[230686]: connect from unknown[192.168.216.50] Jul 16 14:23:09 mail postfix/smtpd[230686]: Anonymous TLS connection established from unknown[192.168.216.50]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) Jul 16 14:23:09 mail postfix/smtpd[230686]: NOQUEUE: reject: RCPT from unknown[192.168.216.50]: 550 5.1.1 <thomas.hoeferer@papageno.at>: Recipient address rejected: undeliverable address: host mail.papageno.at[private/dovecot-lmtp] said: 550 5.1.1 <thomas.hoeferer@papageno.at> User doesn't exist: thomas.hoeferer@papageno.at (in reply to RCPT TO command); from=<> to=<thomas.hoeferer@papageno.at> proto=ESMTP helo=<pmg.papageno.at> Jul 16 14:23:09 mail postfix/smtpd[230686]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "thomas.hoeferer@papageno.at" from client "unknown[192.168.216.50]" Jul 16 14:23:09 mail postfix/smtpd[230686]: disconnect from unknown[192.168.216.50] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8 Jul 16 14:23:14 mail dovecot[556]: managesieve-login: Disconnected: Inactivity (client didn't finish SASL auth, waited 180 secs): user=<thomas.hoeferer@papageno.at>, method=OAUTHBEARER, rip=127.0.0.1, lip=127.0.0.1, secured, session=<7f086go6GsN/AAAB>
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

kk all clear i will apply i have wildcard should work for all or ? I reply if done

<!-- gh-comment-id:3078360280 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): kk all clear i will apply i have wildcard should work for all or ? I reply if done
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

ok applied a valid *.papageno.at cert
Nginx is fines , postfix to

domainname:mail.papageno.at
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
31:3f:87:12:d5:85:15:8d:14:4a:5e:2e:c2:44:cc:24
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Domain Validation CA SHA2
Validity
Not Before: Feb 28 10:55:31 2025 GMT
Not After : Feb 28 10:55:30 2026 GMT
Subject: CN=*.papageno.at
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:

nothing happened except the error message is gone by accessing sieve setting.
I cnat change language of a normal user becouse of rights
I have no webmail access , not as dom admin user neither as normal user

another thing i doint understand
I send a mail from GW becouse direct is not possible: (wich is fine btw)

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 pmg.papageno.at Mail Papageno ready
helo xxeon.com
250 pmg.papageno.at
mail from: thomas.hoeferer@papageno.at
250 2.1.0 Ok
rcpt to: thomas.hoeferer@papageno.at
250 2.1.5 Ok
data
354 End data with .
test
.
250 2.0.0 Ok: queued as E6EEA161444

on the GW i get : (we dint care about DKIM DMAR and others atm OK ? )

2025-07-16T14:40:26.987382+02:00 pmg postfix/smtpd[64726]: connect from localhost.localdomain[127.0.0.1]
2025-07-16T14:40:36.947161+02:00 pmg postfix/smtpd[64726]: E6EEA161444: client=localhost.localdomain[127.0.0.1]
2025-07-16T14:40:46.052085+02:00 pmg postfix/cleanup[64731]: E6EEA161444: message-id=20250716124036.E6EEA161444@pmg.papageno.at
2025-07-16T14:40:46.054694+02:00 pmg postfix/qmgr[26392]: E6EEA161444: from=thomas.hoeferer@papageno.at, size=341, nrcpt=1 (queue active)
2025-07-16T14:40:46.229954+02:00 pmg pmg-smtp-filter[62780]: 16145F68779DCE341E0: new mail message-id=20250716124036.E6EEA161444@pmg.papageno.at#012
2025-07-16T14:40:46.814156+02:00 pmg pmg-smtp-filter[62780]: 16145F68779DCE341E0: SA score=2/5 time=0.507 bayes=undefined autolearn=disabled hits=ALL_TRUSTED(-1),KAM_BLANKSUBJECT(0.25),KAM_DMARC_STATUS(0.01),MISSING_HEADERS(1.207),MISSING_SUBJECT(1.767)
2025-07-16T14:40:46.848505+02:00 pmg postfix/smtpd[64738]: connect from localhost.localdomain[127.0.0.1]
2025-07-16T14:40:46.853779+02:00 pmg postfix/smtpd[64738]: D0548161466: client=localhost.localdomain[127.0.0.1], orig_client=localhost.localdomain[127.0.0.1]
2025-07-16T14:40:46.896240+02:00 pmg postfix/cleanup[64731]: D0548161466: message-id=20250716124036.E6EEA161444@pmg.papageno.at
2025-07-16T14:40:46.900207+02:00 pmg postfix/qmgr[26392]: D0548161466: from=thomas.hoeferer@papageno.at, size=916, nrcpt=1 (queue active)
2025-07-16T14:40:46.900466+02:00 pmg postfix/smtpd[64738]: disconnect from localhost.localdomain[127.0.0.1] ehlo=1 xforward=1 mail=1 rcpt=1 data=1 commands=5
2025-07-16T14:40:46.900945+02:00 pmg pmg-smtp-filter[62780]: 16145F68779DCE341E0: accept mail to thomas.hoeferer@papageno.at (D0548161466) (rule: default-accept)
2025-07-16T14:40:46.908640+02:00 pmg pmg-smtp-filter[62780]: 16145F68779DCE341E0: processing time: 0.687 seconds (0.507, 0.068, 0)
2025-07-16T14:40:46.909787+02:00 pmg postfix/lmtp[64733]: E6EEA161444: to=thomas.hoeferer@papageno.at, relay=127.0.0.1[127.0.0.1]:10024, delay=12, delays=11/0.11/0.05/0.7, dsn=2.5.0, status=sent (250 2.5.0 OK (16145F68779DCE341E0))
2025-07-16T14:40:46.910292+02:00 pmg postfix/qmgr[26392]: E6EEA161444: removed
2025-07-16T14:40:48.030833+02:00 pmg postfix/smtp[64739]: D0548161466: to=thomas.hoeferer@papageno.at, relay=192.168.216.40[192.168.216.40]:25, delay=1.2, delays=0.05/0.11/0.58/0.45, dsn=5.1.1, status=bounced (host 192.168.216.40[192.168.216.40] said: 550 5.1.1 thomas.hoeferer@papageno.at: Recipient address rejected: undeliverable address: host mail.papageno.at[private/dovecot-lmtp] said: 550 5.1.1 thomas.hoeferer@papageno.at User doesn't exist: thomas.hoeferer@papageno.at (in reply to RCPT TO command) (in reply to RCPT TO command))
2025-07-16T14:40:48.042405+02:00 pmg postfix/qmgr[26392]: D0548161466: removed

on Modoboa:
Jul 16 14:40:47 mail postfix/smtpd[1479]: connect from unknown[192.168.216.50]
Jul 16 14:40:47 mail postfix/smtpd[1479]: Anonymous TLS connection established from unknown[192.168.216.50]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
Jul 16 14:40:48 mail postfix/smtpd[1479]: NOQUEUE: reject: RCPT from unknown[192.168.216.50]: 550 5.1.1 thomas.hoeferer@papageno.at: Recipient address rejected: undeliverable address: host mail.papageno.at[private/dovecot-lmtp] said: 550 5.1.1 thomas.hoeferer@papageno.at User doesn't exist: thomas.hoeferer@papageno.at (in reply to RCPT TO command); from=thomas.hoeferer@papageno.at to=thomas.hoeferer@papageno.at proto=ESMTP helo=<pmg.papageno.at>
Jul 16 14:40:48 mail postfix/smtpd[1479]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "thomas.hoeferer@papageno.at" from client "unknown[192.168.216.50]"
Jul 16 14:40:48 mail postfix/smtpd[1479]: disconnect from unknown[192.168.216.50] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8
Jul 16 14:40:48 mail postfix/postscreen[1475]: CONNECT from [192.168.216.50]:50106 to [192.168.216.40]:25
Jul 16 14:40:48 mail postfix/postscreen[1475]: PASS OLD [192.168.216.50]:50106
Jul 16 14:40:48 mail postfix/smtpd[1479]: connect from unknown[192.168.216.50]
Jul 16 14:40:48 mail postfix/smtpd[1479]: Anonymous TLS connection established from unknown[192.168.216.50]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)
Jul 16 14:40:48 mail postfix/smtpd[1479]: NOQUEUE: reject: RCPT from unknown[192.168.216.50]: 550 5.1.1 thomas.hoeferer@papageno.at: Recipient address rejected: undeliverable address: host mail.papageno.at[private/dovecot-lmtp] said: 550 5.1.1 thomas.hoeferer@papageno.at User doesn't exist: thomas.hoeferer@papageno.at (in reply to RCPT TO command); from=<> to=thomas.hoeferer@papageno.at proto=ESMTP helo=<pmg.papageno.at>
Jul 16 14:40:48 mail postfix/smtpd[1479]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "thomas.hoeferer@papageno.at" from client "unknown[192.168.216.50]"
Jul 16 14:40:48 mail postfix/smtpd[1479]: disconnect from unknown[192.168.216.50] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8

But i can login with ID and Password

i cant change anything about right and try to create a new calendar gives

New calendar Name

<html lang=""> <head> </head>

Sorry

An internal error occured.

</html>

Jul 16 14:36:33 mail modoboa.auth[1161]: INFO User 'thomas.hoeferer@papageno.at' successfully logged in
and i see it in the GUI

<!-- gh-comment-id:3078464277 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): ok applied a valid *.papageno.at cert Nginx is fines , postfix to domainname:mail.papageno.at Certificate: Data: Version: 3 (0x2) Serial Number: 31:3f:87:12:d5:85:15:8d:14:4a:5e:2e:c2:44:cc:24 Signature Algorithm: sha256WithRSAEncryption Issuer: C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Domain Validation CA SHA2 Validity Not Before: Feb 28 10:55:31 2025 GMT Not After : Feb 28 10:55:30 2026 GMT Subject: CN=*.papageno.at Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: nothing happened except the error message is gone by accessing sieve setting. I cnat change language of a normal user becouse of rights I have no webmail access , not as dom admin user neither as normal user another thing i doint understand I send a mail from GW becouse direct is not possible: (wich is fine btw) telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 pmg.papageno.at Mail Papageno ready helo xxeon.com 250 pmg.papageno.at mail from: thomas.hoeferer@papageno.at 250 2.1.0 Ok rcpt to: thomas.hoeferer@papageno.at 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> test . 250 2.0.0 Ok: queued as E6EEA161444 on the GW i get : (we dint care about DKIM DMAR and others atm OK ? ) 2025-07-16T14:40:26.987382+02:00 pmg postfix/smtpd[64726]: connect from localhost.localdomain[127.0.0.1] 2025-07-16T14:40:36.947161+02:00 pmg postfix/smtpd[64726]: E6EEA161444: client=localhost.localdomain[127.0.0.1] 2025-07-16T14:40:46.052085+02:00 pmg postfix/cleanup[64731]: E6EEA161444: message-id=<20250716124036.E6EEA161444@pmg.papageno.at> 2025-07-16T14:40:46.054694+02:00 pmg postfix/qmgr[26392]: E6EEA161444: from=<thomas.hoeferer@papageno.at>, size=341, nrcpt=1 (queue active) 2025-07-16T14:40:46.229954+02:00 pmg pmg-smtp-filter[62780]: 16145F68779DCE341E0: new mail message-id=<20250716124036.E6EEA161444@pmg.papageno.at>#012 2025-07-16T14:40:46.814156+02:00 pmg pmg-smtp-filter[62780]: 16145F68779DCE341E0: SA score=2/5 time=0.507 bayes=undefined autolearn=disabled hits=ALL_TRUSTED(-1),KAM_BLANKSUBJECT(0.25),KAM_DMARC_STATUS(0.01),MISSING_HEADERS(1.207),MISSING_SUBJECT(1.767) 2025-07-16T14:40:46.848505+02:00 pmg postfix/smtpd[64738]: connect from localhost.localdomain[127.0.0.1] 2025-07-16T14:40:46.853779+02:00 pmg postfix/smtpd[64738]: D0548161466: client=localhost.localdomain[127.0.0.1], orig_client=localhost.localdomain[127.0.0.1] 2025-07-16T14:40:46.896240+02:00 pmg postfix/cleanup[64731]: D0548161466: message-id=<20250716124036.E6EEA161444@pmg.papageno.at> 2025-07-16T14:40:46.900207+02:00 pmg postfix/qmgr[26392]: D0548161466: from=<thomas.hoeferer@papageno.at>, size=916, nrcpt=1 (queue active) 2025-07-16T14:40:46.900466+02:00 pmg postfix/smtpd[64738]: disconnect from localhost.localdomain[127.0.0.1] ehlo=1 xforward=1 mail=1 rcpt=1 data=1 commands=5 2025-07-16T14:40:46.900945+02:00 pmg pmg-smtp-filter[62780]: 16145F68779DCE341E0: accept mail to <thomas.hoeferer@papageno.at> (D0548161466) (rule: default-accept) 2025-07-16T14:40:46.908640+02:00 pmg pmg-smtp-filter[62780]: 16145F68779DCE341E0: processing time: 0.687 seconds (0.507, 0.068, 0) 2025-07-16T14:40:46.909787+02:00 pmg postfix/lmtp[64733]: E6EEA161444: to=<thomas.hoeferer@papageno.at>, relay=127.0.0.1[127.0.0.1]:10024, delay=12, delays=11/0.11/0.05/0.7, dsn=2.5.0, status=sent (250 2.5.0 OK (16145F68779DCE341E0)) 2025-07-16T14:40:46.910292+02:00 pmg postfix/qmgr[26392]: E6EEA161444: removed 2025-07-16T14:40:48.030833+02:00 pmg postfix/smtp[64739]: D0548161466: to=<thomas.hoeferer@papageno.at>, relay=192.168.216.40[192.168.216.40]:25, delay=1.2, delays=0.05/0.11/0.58/0.45, dsn=5.1.1, status=bounced (host 192.168.216.40[192.168.216.40] said: 550 5.1.1 <thomas.hoeferer@papageno.at>: Recipient address rejected: undeliverable address: host mail.papageno.at[private/dovecot-lmtp] said: 550 5.1.1 <thomas.hoeferer@papageno.at> User doesn't exist: thomas.hoeferer@papageno.at (in reply to RCPT TO command) (in reply to RCPT TO command)) 2025-07-16T14:40:48.042405+02:00 pmg postfix/qmgr[26392]: D0548161466: removed on Modoboa: Jul 16 14:40:47 mail postfix/smtpd[1479]: connect from unknown[192.168.216.50] Jul 16 14:40:47 mail postfix/smtpd[1479]: Anonymous TLS connection established from unknown[192.168.216.50]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 Jul 16 14:40:48 mail postfix/smtpd[1479]: NOQUEUE: reject: RCPT from unknown[192.168.216.50]: 550 5.1.1 <thomas.hoeferer@papageno.at>: Recipient address rejected: undeliverable address: host mail.papageno.at[private/dovecot-lmtp] said: 550 5.1.1 <thomas.hoeferer@papageno.at> User doesn't exist: thomas.hoeferer@papageno.at (in reply to RCPT TO command); from=<thomas.hoeferer@papageno.at> to=<thomas.hoeferer@papageno.at> proto=ESMTP helo=<pmg.papageno.at> Jul 16 14:40:48 mail postfix/smtpd[1479]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "thomas.hoeferer@papageno.at" from client "unknown[192.168.216.50]" Jul 16 14:40:48 mail postfix/smtpd[1479]: disconnect from unknown[192.168.216.50] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8 Jul 16 14:40:48 mail postfix/postscreen[1475]: CONNECT from [192.168.216.50]:50106 to [192.168.216.40]:25 Jul 16 14:40:48 mail postfix/postscreen[1475]: PASS OLD [192.168.216.50]:50106 Jul 16 14:40:48 mail postfix/smtpd[1479]: connect from unknown[192.168.216.50] Jul 16 14:40:48 mail postfix/smtpd[1479]: Anonymous TLS connection established from unknown[192.168.216.50]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) Jul 16 14:40:48 mail postfix/smtpd[1479]: NOQUEUE: reject: RCPT from unknown[192.168.216.50]: 550 5.1.1 <thomas.hoeferer@papageno.at>: Recipient address rejected: undeliverable address: host mail.papageno.at[private/dovecot-lmtp] said: 550 5.1.1 <thomas.hoeferer@papageno.at> User doesn't exist: thomas.hoeferer@papageno.at (in reply to RCPT TO command); from=<> to=<thomas.hoeferer@papageno.at> proto=ESMTP helo=<pmg.papageno.at> Jul 16 14:40:48 mail postfix/smtpd[1479]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "thomas.hoeferer@papageno.at" from client "unknown[192.168.216.50]" Jul 16 14:40:48 mail postfix/smtpd[1479]: disconnect from unknown[192.168.216.50] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8 But i can login with ID and Password i cant change anything about right and try to create a new calendar gives New calendar Name <!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8" /> <title></title> <link rel="icon" type="image/png" href="/sitestatic/css/logo-icon.png" /> <link rel="stylesheet" type="text/css" href="/sitestatic/bootstrap/dist/css/bootstrap.min.css" /> <script src="/sitestatic/bootstrap/dist/js/bootstrap.min.js" type="text/javascript"></script> <script src="/sitestatic/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js" type="text/javascript"></script> <script type="text/javascript" src="/jsi18n/"></script> <style> body { padding-top: 60px; } </style> </head> <body> <div class="container-fluid"> <div class="row-fluid"> <div class="alert alert-danger"> <h4>Sorry</h4> <p>An internal error occured.</p> </div> </div> </div> </body> </html> Jul 16 14:36:33 mail modoboa.auth[1161]: INFO User 'thomas.hoeferer@papageno.at' successfully logged in and i see it in the GUI
Author
Owner

@tonioo commented on GitHub (Jul 16, 2025):

And you also updated dovecot configuration after you changed the certificate?

<!-- gh-comment-id:3078481698 --> @tonioo commented on GitHub (Jul 16, 2025): And you also updated dovecot configuration after you changed the certificate?
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

i checked in /etc/dovecot/conf.d/10-ssl-keys.try if dovecot have the right location for the Certs and then
i rebooted the whole machine

openssl s_client -crlf -connect mail.papageno,at:993 |grep NotAfter:
connecting to 212.69.165.8
depth=0 CN=*.papageno.at
verify return:1
v:NotBefore: Feb 28 10:55:31 2025 GMT; NotAfter: Feb 28 10:55:30 2026 GMT

<!-- gh-comment-id:3078534135 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): i checked in /etc/dovecot/conf.d/10-ssl-keys.try if dovecot have the right location for the Certs and then i rebooted the whole machine openssl s_client -crlf -connect mail.papageno,at:993 |grep NotAfter: connecting to 212.69.165.8 depth=0 CN=*.papageno.at verify return:1 v:NotBefore: Feb 28 10:55:31 2025 GMT; NotAfter: Feb 28 10:55:30 2026 GMT
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

i need to say the system mailgateway and server are behind a firewall ports are directly forwarded to gatewy / Modoba communication in other direction is also possible without restrictions i have full DNS resolution and i see that the DNS checks of the Domain are OK for example 443 993 995 143 etc are forwarded to modoboa 25 and 587 to mailgateway wich does the transport . i can reach modoboa server withc curl or webinterface or shell no problem at all but well need to say ...who knows ;)

<!-- gh-comment-id:3078565523 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): i need to say the system mailgateway and server are behind a firewall ports are directly forwarded to gatewy / Modoba communication in other direction is also possible without restrictions i have full DNS resolution and i see that the DNS checks of the Domain are OK for example 443 993 995 143 etc are forwarded to modoboa 25 and 587 to mailgateway wich does the transport . i can reach modoboa server withc curl or webinterface or shell no problem at all but well need to say ...who knows ;)
Author
Owner

@tonioo commented on GitHub (Jul 16, 2025):

Can you enable debug more? (set DEBUG to True inside settings.py file and reload uwsgi)

<!-- gh-comment-id:3078823086 --> @tonioo commented on GitHub (Jul 16, 2025): Can you enable debug more? (set DEBUG to True inside settings.py file and reload uwsgi)
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

set to
Debug = True
reboot whole machine

same as before, GUI without rights and no webmail

uwsgi :

mail.papageno.at [pid: 1147|app: 1|req: 5/17] 94.136.29.244 () {60 vars in 1047 bytes} [Wed Jul 16 16:28:02 2025] GET /api/v2/alarms/?page=1&page_size=10 => generated 52 bytes in 76 msecs (HTTP/2.0 200) 6 headers in 188 bytes (1 switches on core 0)
mail.papageno.at [pid: 1147|app: 1|req: 6/18] 94.136.29.244 () {60 vars in 1090 bytes} [Wed Jul 16 16:28:09 2025] GET /api/v2/logs/messages/?page=1&page_size=10&search= => generated 52 bytes in 123 msecs (HTTP/2.0 200) 6 headers in 188 bytes (1 switches on core 0)
mail.papageno.at [pid: 1150|app: 1|req: 7/19] 94.136.29.244 () {60 vars in 1047 bytes} [Wed Jul 16 16:28:10 2025] GET /api/v2/alarms/?page=1&page_size=10 => generated 52 bytes in 124 msecs (HTTP/2.0 200) 6 headers in 188 bytes (1 switches on core 0)
mail.papageno.at [pid: 1147|app: 1|req: 7/20] 94.136.29.244 () {60 vars in 1020 bytes} [Wed Jul 16 16:28:11 2025] GET /api/v2/identities/ => generated 1123 bytes in 170 msecs (HTTP/2.0 200) 6 headers in 190 bytes (1 switches on core 0)
mail.papageno.at [pid: 1150|app: 1|req: 8/21] 94.136.29.244 () {60 vars in 1031 bytes} [Wed Jul 16 16:28:13 2025] GET /api/v2/accounts/4/ => generated 538 bytes in 160 msecs (HTTP/2.0 200) 6 headers in 209 bytes (1 switches on core 0)
mail.papageno.at [pid: 1147|app: 1|req: 8/22] 94.136.29.244 () {60 vars in 1060 bytes} [Wed Jul 16 16:28:14 2025] GET /api/v2/senderaddresses/?mailbox=3 => generated 2 bytes in 127 msecs (HTTP/2.0 200) 6 headers in 193 bytes (1 switches on core 0)
mail.papageno.at [pid: 1148|app: 1|req: 4/23] 94.136.29.244 () {60 vars in 1036 bytes} [Wed Jul 16 16:28:18 2025] GET /api/v2/accounts/4/ => generated 538 bytes in 155 msecs (HTTP/2.0 200) 6 headers in 209 bytes (1 switches on core 0)
mail.papageno.at [pid: 1150|app: 1|req: 9/24] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 16:28:18 2025] GET /api/v2/domains/ => generated 895 bytes in 131 msecs (HTTP/2.0 200) 6 headers in 203 bytes (1 switches on core 0)
mail.papageno.at [pid: 1151|app: 1|req: 4/25] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 16:28:18 2025] GET /api/v2/domains/ => generated 895 bytes in 522 msecs (HTTP/2.0 200) 6 headers in 203 bytes (1 switches on core 0)
mail.papageno.at [pid: 1147|app: 1|req: 9/26] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 16:28:57 2025] GET /api/v2/webmail/mailboxes/ => generated 47 bytes in 117 msecs (HTTP/2.0 404) 5 headers in 160 bytes (2 switches on core 0)
mail.papageno.at [pid: 1150|app: 1|req: 10/27] 94.136.29.244 () {60 vars in 1049 bytes} [Wed Jul 16 16:30:17 2025] GET /api/v2/account/available_applications/ => generated 445 bytes in 124 msecs (HTTP/2.0 200) 6 headers in 189 bytes (1 switches on core 0)
mail.papageno.at [pid: 1151|app: 1|req: 5/28] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 16:30:22 2025] GET /api/v2/webmail/mailboxes/ => generated 47 bytes in 125 msecs (HTTP/2.0 404) 5 headers in 160 bytes (1 switches on core 0)

nginx

94.136.29.244 - - [16/Jul/2025:16:28:18 +0200] "GET /api/v2/domains/ HTTP/2.0" 200 895 "https://mail.papageno.at/admin/identities/accounts/4/edit" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:28:18 +0200] "GET /api/v2/domains/ HTTP/2.0" 200 895 "https://mail.papageno.at/admin/identities/accounts/4/edit" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/WebmailLayout-BftSRE9P.js HTTP/2.0" 200 8902 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/webmail-CURzuE4B.js HTTP/2.0" 200 2109 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/WebmailLayout-UlftFiiT.css HTTP/2.0" 200 92 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/MailboxView-Cgl2yDYS.js HTTP/2.0" 200 9010 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/MailboxView-B-aI4XBq.css HTTP/2.0" 200 5224 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /api/v2/webmail/mailboxes/ HTTP/2.0" 404 47 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:30:18 +0200] "GET /api/v2/account/available_applications/ HTTP/2.0" 200 445 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:16:30:23 +0200] "GET /api/v2/webmail/mailboxes/ HTTP/2.0" 404 47 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"

all lokks good so far postgresql redis uwsgi nginx except delivering this 404 if call webmail and
{ "error": "Connection to MANAGESIEVE server failed, check your configuration" } error when i touch sieve config nad at last normal user cant change language,

I will check by myself , thought its a easy "hey you forgott that switch here" thing i will report here if i found the issue

<!-- gh-comment-id:3078911153 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): set to Debug = True reboot whole machine same as before, GUI without rights and no webmail uwsgi : mail.papageno.at [pid: 1147|app: 1|req: 5/17] 94.136.29.244 () {60 vars in 1047 bytes} [Wed Jul 16 16:28:02 2025] GET /api/v2/alarms/?page=1&page_size=10 => generated 52 bytes in 76 msecs (HTTP/2.0 200) 6 headers in 188 bytes (1 switches on core 0) mail.papageno.at [pid: 1147|app: 1|req: 6/18] 94.136.29.244 () {60 vars in 1090 bytes} [Wed Jul 16 16:28:09 2025] GET /api/v2/logs/messages/?page=1&page_size=10&search= => generated 52 bytes in 123 msecs (HTTP/2.0 200) 6 headers in 188 bytes (1 switches on core 0) mail.papageno.at [pid: 1150|app: 1|req: 7/19] 94.136.29.244 () {60 vars in 1047 bytes} [Wed Jul 16 16:28:10 2025] GET /api/v2/alarms/?page=1&page_size=10 => generated 52 bytes in 124 msecs (HTTP/2.0 200) 6 headers in 188 bytes (1 switches on core 0) mail.papageno.at [pid: 1147|app: 1|req: 7/20] 94.136.29.244 () {60 vars in 1020 bytes} [Wed Jul 16 16:28:11 2025] GET /api/v2/identities/ => generated 1123 bytes in 170 msecs (HTTP/2.0 200) 6 headers in 190 bytes (1 switches on core 0) mail.papageno.at [pid: 1150|app: 1|req: 8/21] 94.136.29.244 () {60 vars in 1031 bytes} [Wed Jul 16 16:28:13 2025] GET /api/v2/accounts/4/ => generated 538 bytes in 160 msecs (HTTP/2.0 200) 6 headers in 209 bytes (1 switches on core 0) mail.papageno.at [pid: 1147|app: 1|req: 8/22] 94.136.29.244 () {60 vars in 1060 bytes} [Wed Jul 16 16:28:14 2025] GET /api/v2/senderaddresses/?mailbox=3 => generated 2 bytes in 127 msecs (HTTP/2.0 200) 6 headers in 193 bytes (1 switches on core 0) mail.papageno.at [pid: 1148|app: 1|req: 4/23] 94.136.29.244 () {60 vars in 1036 bytes} [Wed Jul 16 16:28:18 2025] GET /api/v2/accounts/4/ => generated 538 bytes in 155 msecs (HTTP/2.0 200) 6 headers in 209 bytes (1 switches on core 0) mail.papageno.at [pid: 1150|app: 1|req: 9/24] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 16:28:18 2025] GET /api/v2/domains/ => generated 895 bytes in 131 msecs (HTTP/2.0 200) 6 headers in 203 bytes (1 switches on core 0) mail.papageno.at [pid: 1151|app: 1|req: 4/25] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 16:28:18 2025] GET /api/v2/domains/ => generated 895 bytes in 522 msecs (HTTP/2.0 200) 6 headers in 203 bytes (1 switches on core 0) mail.papageno.at [pid: 1147|app: 1|req: 9/26] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 16:28:57 2025] GET /api/v2/webmail/mailboxes/ => generated 47 bytes in 117 msecs (HTTP/2.0 404) 5 headers in 160 bytes (2 switches on core 0) mail.papageno.at [pid: 1150|app: 1|req: 10/27] 94.136.29.244 () {60 vars in 1049 bytes} [Wed Jul 16 16:30:17 2025] GET /api/v2/account/available_applications/ => generated 445 bytes in 124 msecs (HTTP/2.0 200) 6 headers in 189 bytes (1 switches on core 0) mail.papageno.at [pid: 1151|app: 1|req: 5/28] 94.136.29.244 () {60 vars in 1030 bytes} [Wed Jul 16 16:30:22 2025] GET /api/v2/webmail/mailboxes/ => generated 47 bytes in 125 msecs (HTTP/2.0 404) 5 headers in 160 bytes (1 switches on core 0) nginx 94.136.29.244 - - [16/Jul/2025:16:28:18 +0200] "GET /api/v2/domains/ HTTP/2.0" 200 895 "https://mail.papageno.at/admin/identities/accounts/4/edit" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:28:18 +0200] "GET /api/v2/domains/ HTTP/2.0" 200 895 "https://mail.papageno.at/admin/identities/accounts/4/edit" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/WebmailLayout-BftSRE9P.js HTTP/2.0" 200 8902 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/webmail-CURzuE4B.js HTTP/2.0" 200 2109 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/WebmailLayout-UlftFiiT.css HTTP/2.0" 200 92 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/MailboxView-Cgl2yDYS.js HTTP/2.0" 200 9010 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /assets/MailboxView-B-aI4XBq.css HTTP/2.0" 200 5224 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:28:57 +0200] "GET /api/v2/webmail/mailboxes/ HTTP/2.0" 404 47 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:30:18 +0200] "GET /api/v2/account/available_applications/ HTTP/2.0" 200 445 "https://mail.papageno.at/admin" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:16:30:23 +0200] "GET /api/v2/webmail/mailboxes/ HTTP/2.0" 404 47 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" all lokks good so far postgresql redis uwsgi nginx except delivering this 404 if call webmail and { "error": "Connection to MANAGESIEVE server failed, check your configuration" } error when i touch sieve config nad at last normal user cant change language, I will check by myself , thought its a easy "hey you forgott that switch here" thing i will report here if i found the issue
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

ok did a Dovecot systemcheck and looked inside and see i have a crt issue
mabey i need a anchor inside or need to add CA lets see

Jul 16 16:36:56 Error: auth: oauth2(admin@papageno.at,127.0.0.1,<Y76t0gw6uo1/AAAB>): oauth2 failed: Introspection failed: SSL handshaking with 192.168.216.40:443 failed: read(SSL (conn:192.168.216.40:443,id=4)) failed: Received invalid SSL certificate: unable to get local issuer certificate: /CN=.papageno.at (check ssl_client_ca_ settings?)

<!-- gh-comment-id:3078934130 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): ok did a Dovecot systemcheck and looked inside and see i have a crt issue mabey i need a anchor inside or need to add CA lets see Jul 16 16:36:56 Error: auth: oauth2(admin@papageno.at,127.0.0.1,<Y76t0gw6uo1/AAAB>): oauth2 failed: Introspection failed: SSL handshaking with 192.168.216.40:443 failed: read(SSL (conn:192.168.216.40:443,id=4)) failed: Received invalid SSL certificate: unable to get local issuer certificate: /CN=*.papageno.at (check ssl_client_ca_* settings?)
Author
Owner

@1stoneofjordan commented on GitHub (Jul 16, 2025):

last info for today :
fixed the oauth2 error by adding intermediate + root CA as anchor to cert file.
Error in dovecot is gone now log_errors when doin a dovecot-sysreport is empty
still no webmail
looks like /api/v2/webmail/mailboxes not exist or wont spwan

94.136.29.244 - - [16/Jul/2025:17:10:34 +0200] "GET /assets/VAlert-iGJ3gOzk.css HTTP/2.0" 200 4307 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:17:10:34 +0200] "GET /assets/MailboxView-B-aI4XBq.css HTTP/2.0" 200 5224 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
94.136.29.244 - - [16/Jul/2025:17:10:35 +0200] "GET /api/v2/webmail/mailboxes/ HTTP/2.0" 404 47 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"

<!-- gh-comment-id:3079100118 --> @1stoneofjordan commented on GitHub (Jul 16, 2025): last info for today : fixed the oauth2 error by adding intermediate + root CA as anchor to cert file. Error in dovecot is gone now log_errors when doin a dovecot-sysreport is empty still no webmail looks like /api/v2/webmail/mailboxes not exist or wont spwan 94.136.29.244 - - [16/Jul/2025:17:10:34 +0200] "GET /assets/VAlert-iGJ3gOzk.css HTTP/2.0" 200 4307 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:17:10:34 +0200] "GET /assets/MailboxView-B-aI4XBq.css HTTP/2.0" 200 5224 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" 94.136.29.244 - - [16/Jul/2025:17:10:35 +0200] "GET /api/v2/webmail/mailboxes/ HTTP/2.0" 404 47 "https://mail.papageno.at/user/webmail" "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"
Author
Owner

@tonioo commented on GitHub (Jul 17, 2025):

And you confirm calendars and contacts features are working?

<!-- gh-comment-id:3082898381 --> @tonioo commented on GitHub (Jul 17, 2025): And you confirm calendars and contacts features are working?
Author
Owner

@1stoneofjordan commented on GitHub (Jul 17, 2025):

Yes both is working without problems
i can add edit and delete contacts
i can add new calender and add edit and delete events

<!-- gh-comment-id:3083002459 --> @1stoneofjordan commented on GitHub (Jul 17, 2025): Yes both is working without problems i can add edit and delete contacts i can add new calender and add edit and delete events
Author
Owner

@1stoneofjordan commented on GitHub (Jul 17, 2025):

Here output from axios lib jfyi

XHRGET
https://mail.papageno.at/api/v2/webmail/mailboxes/
[HTTP/2 404 115ms]

Object { stack: "Ve@https://mail.papageno.at/assets/index-6uM3C9QJ.js:34:9249\nfp@https://mail.papageno.at/assets/index-6uM3C9QJ.js:36:1088\nq@https://mail.papageno.at/assets/index-6uM3C9QJ.js:36:5744\nEventHandlerNonNullnS</<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:36:5817\nnS<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:36:5143\nWd@https://mail.papageno.at/assets/index-6uM3C9QJ.js:38:512\npromise callback_request@https://mail.papageno.at/assets/index-6uM3C9QJ.js:39:1329\nrequest@https://mail.papageno.at/assets/index-6uM3C9QJ.js:38:1983\nzs.prototype[t]@https://mail.papageno.at/assets/index-6uM3C9QJ.js:39:1792\nZg/<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:34:3690\ngetUserMailboxes@https://mail.papageno.at/assets/webmail-CURzuE4B.js:1:107\nq@https://mail.papageno.at/assets/WebmailLayout-BftSRE9P.js:1:6214\n@https://mail.papageno.at/assets/WebmailLayout-BftSRE9P.js:1:6869\nwE@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:14195\nsetup@https://mail.papageno.at/assets/WebmailLayout-BftSRE9P.js:1:6863\npr@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:38\nKb@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:47918\n$b@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:47705\nMe@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:26765\nTe@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:26641\nG@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:23190\nbe@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:27451\nrun@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:1910\nrunIfDirty@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:2220\npr@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:46\ngf@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:1799\npromise callbackhf@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:1117\nel@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:1231\nWb@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:42437\nHn/y.scheduler@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:34335\nUv/T.scheduler<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:16224\ntrigger@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:2162\nsc@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:2577\nnotify@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:4970\ntrigger@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:4864\nset value@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:13343\nse@https://mail.papageno.at/assets/index-6uM3C9QJ.js:30:21347\nFw/he/<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:30:19976\npromise callbackhe@https://mail.papageno.at/assets/index-6uM3C9QJ.js:30:19831\nre@https://mail.papageno.at/assets/index-6uM3C9QJ.js:30:19075\nonClick@https://mail.papageno.at/assets/ConnectedLayout-C0KKRFEy.js:1:14785\npr@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:38\nki@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:111\na@https://mail.papageno.at/assets/index-6uM3C9QJ.js:18:7722\n", message: "Request failed with status code 404", name: "AxiosError", code: "ERR_BAD_REQUEST", config: {…}, request: XMLHttpRequest, response: {…}, status: 404 }
index-6uM3C9QJ.js:14:662

<!-- gh-comment-id:3083077242 --> @1stoneofjordan commented on GitHub (Jul 17, 2025): Here output from axios lib jfyi XHRGET https://mail.papageno.at/api/v2/webmail/mailboxes/ [HTTP/2 404 115ms] Object { stack: "Ve@https://mail.papageno.at/assets/index-6uM3C9QJ.js:34:9249\nfp@https://mail.papageno.at/assets/index-6uM3C9QJ.js:36:1088\nq@https://mail.papageno.at/assets/index-6uM3C9QJ.js:36:5744\nEventHandlerNonNull*nS</<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:36:5817\nnS<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:36:5143\nWd@https://mail.papageno.at/assets/index-6uM3C9QJ.js:38:512\npromise callback*_request@https://mail.papageno.at/assets/index-6uM3C9QJ.js:39:1329\nrequest@https://mail.papageno.at/assets/index-6uM3C9QJ.js:38:1983\nzs.prototype[t]@https://mail.papageno.at/assets/index-6uM3C9QJ.js:39:1792\nZg/<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:34:3690\ngetUserMailboxes@https://mail.papageno.at/assets/webmail-CURzuE4B.js:1:107\nq@https://mail.papageno.at/assets/WebmailLayout-BftSRE9P.js:1:6214\n@https://mail.papageno.at/assets/WebmailLayout-BftSRE9P.js:1:6869\nwE@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:14195\nsetup@https://mail.papageno.at/assets/WebmailLayout-BftSRE9P.js:1:6863\npr@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:38\nKb@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:47918\n$b@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:47705\nMe@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:26765\nTe@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:26641\nG@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:23190\nbe@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:27451\nrun@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:1910\nrunIfDirty@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:2220\npr@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:46\ngf@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:1799\npromise callback*hf@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:1117\nel@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:1231\nWb@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:42437\nHn/y.scheduler@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:34335\nUv/T.scheduler<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:16224\ntrigger@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:2162\nsc@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:2577\nnotify@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:4970\ntrigger@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:4864\nset value@https://mail.papageno.at/assets/index-6uM3C9QJ.js:10:13343\nse@https://mail.papageno.at/assets/index-6uM3C9QJ.js:30:21347\nFw/he/<@https://mail.papageno.at/assets/index-6uM3C9QJ.js:30:19976\npromise callback*he@https://mail.papageno.at/assets/index-6uM3C9QJ.js:30:19831\nre@https://mail.papageno.at/assets/index-6uM3C9QJ.js:30:19075\nonClick@https://mail.papageno.at/assets/ConnectedLayout-C0KKRFEy.js:1:14785\npr@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:38\nki@https://mail.papageno.at/assets/index-6uM3C9QJ.js:14:111\na@https://mail.papageno.at/assets/index-6uM3C9QJ.js:18:7722\n", message: "Request failed with status code 404", name: "AxiosError", code: "ERR_BAD_REQUEST", config: {…}, request: XMLHttpRequest, response: {…}, status: 404 } [index-6uM3C9QJ.js:14:662](https://mail.papageno.at/assets/index-6uM3C9QJ.js)
Author
Owner

@1stoneofjordan commented on GitHub (Jul 17, 2025):

mabey another hint ?

base url : https://mail.papageno.at/api/v2/webmail/mailboxes/ gives json: error "Application webmail not registered"

adapter: Array(3) [ "xhr", "http", "fetch" ]
​​​allowAbsoluteUrls: true
​​​baseURL: "https://mail.papageno.at/api/v2"
​​​data: undefined
​​​env: Object { FormData: FormData(), Blob: Blob() }
​​​headers: Object { Accept: "application/json, text/plain, /", Authorization: "Bearer UvfRlmeQgYcsSTNHqVa39hjX89Tldz", "Accept-Language": "de", … }
​​​maxBodyLength: -1
​​​maxContentLength: -1
​​​method: "get"
​​​params: Object { }
​​​timeout: 0
​​​transformRequest: Array [ transformRequest(t, a)
transformResponse: Array [ transformResponse(t)
]
​​​transitional: Object { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }
​​​url: "/webmail/mailboxes/"
​​​validateStatus: function validateStatus(t)
​​​xsrfCookieName: "XSRF-TOKEN"
​​​xsrfHeaderName: "X-XSRF-TOKEN"
​​​: Object { … }
​​data: Object { error: "Application webmail not registered" }
​​headers: Object { "content-language": "de", "content-length": "47", "content-type": "application/json", … }
​​request: XMLHttpRequest { readyState: 4, timeout: 0, withCredentials: false, … }
​​status: 404

<!-- gh-comment-id:3083125294 --> @1stoneofjordan commented on GitHub (Jul 17, 2025): mabey another hint ? base url : https://mail.papageno.at/api/v2/webmail/mailboxes/ gives json: error "Application webmail not registered" adapter: Array(3) [ "xhr", "http", "fetch" ] ​​​allowAbsoluteUrls: true ​​​baseURL: "https://mail.papageno.at/api/v2" ​​​data: undefined ​​​env: Object { FormData: FormData(), Blob: Blob() } ​​​headers: Object { Accept: "application/json, text/plain, */*", Authorization: "Bearer UvfRlmeQgYcsSTNHqVa39hjX89Tldz", "Accept-Language": "de", … } ​​​maxBodyLength: -1 ​​​maxContentLength: -1 ​​​method: "get" ​​​params: Object { } ​​​timeout: 0 ​​​transformRequest: Array [ transformRequest(t, a) transformResponse: Array [ transformResponse(t) ] ​​​transitional: Object { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false } ​​​url: "/webmail/mailboxes/" ​​​validateStatus: function validateStatus(t) ​​​xsrfCookieName: "XSRF-TOKEN" ​​​xsrfHeaderName: "X-XSRF-TOKEN" ​​​<prototype>: Object { … } ​​data: Object { error: "Application webmail not registered" } ​​headers: Object { "content-language": "de", "content-length": "47", "content-type": "application/json", … } ​​request: XMLHttpRequest { readyState: 4, timeout: 0, withCredentials: false, … } ​​status: 404
Author
Owner

@Spitfireap commented on GitHub (Jul 17, 2025):

Hi, can you share the output of :
sudo -u postgres -i psql -d modoboa -c "SELECT name FROM oauth2_provider_application" ?

<!-- gh-comment-id:3083686158 --> @Spitfireap commented on GitHub (Jul 17, 2025): Hi, can you share the output of : ```sudo -u postgres -i psql -d modoboa -c "SELECT name FROM oauth2_provider_application"``` ?
Author
Owner

@Spitfireap commented on GitHub (Jul 17, 2025):

And the content of MODOBOA_APPS located in the file : /srv/modoboa/instance/instance/settings.py

<!-- gh-comment-id:3083689913 --> @Spitfireap commented on GitHub (Jul 17, 2025): And the content of MODOBOA_APPS located in the file : ```/srv/modoboa/instance/instance/settings.py```
Author
Owner

@1stoneofjordan commented on GitHub (Jul 17, 2025):

here the content of settings.py

Django settings for instance project.

For more information on this file, see
https://docs.djangoproject.com/en/4.2/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.2/ref/settings/
"""

from logging.handlers import SysLogHandler
import os
import environ

env = environ.Env()

Build paths inside the project like this: os.path.join(BASE_DIR, ...)

BASE_DIR = os.path.realpath(os.path.dirname(os.path.dirname(file)))
environ.Env.read_env(os.path.join(BASE_DIR, '.env'))

Quick-start development settings - unsuitable for production

See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/

SECURITY WARNING: don't run with debug turned on in production!

DEBUG = True

ALLOWED_HOSTS = [
'mail.papageno.at',
]

SITE_ID = 1

A list of all the people who get code error notifications. When DEBUG=False

and a view raises an exception, Django will email these people with the full

exception information.

See https://docs.djangoproject.com/en/dev/ref/settings/#admins

#ADMINS = [('Administrator', 'admin@example.net')]

The email address that error messages come from, such as those sent to ADMINS

#SERVER_EMAIL = 'webmaster@example.net'

Security settings

X_FRAME_OPTIONS = "SAMEORIGIN"
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True

Application definition

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
'reversion',
'oauth2_provider',
'corsheaders',
'rest_framework',
'rest_framework.authtoken',
'drf_spectacular',
'phonenumber_field',
'django_otp',
'django_otp.plugins.otp_totp',
'django_otp.plugins.otp_static',
'django_rename_app',
'django_rq',
)

A dedicated place to register Modoboa applications

Do not delete it.

Do not change the order.

MODOBOA_APPS = (
'modoboa',
'modoboa.core',
'modoboa.lib',
'modoboa.admin',
'modoboa.transport',
'modoboa.relaydomains',
'modoboa.limits',
'modoboa.parameters',
'modoboa.dnstools',
'modoboa.policyd',
'modoboa.maillog',
'modoboa.pdfcredentials',
'modoboa.dmarc',
'modoboa.imap_migration',
'modoboa.autoreply',
'modoboa.sievefilters',
'modoboa.contacts',
'modoboa.calendars',
# Modoboa extensions here.

)

INSTALLED_APPS += MODOBOA_APPS

AUTH_USER_MODEL = 'core.User'

MIDDLEWARE = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'x_forwarded_for.middleware.XForwardedForMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'modoboa.core.middleware.LocalConfigMiddleware',
'modoboa.lib.middleware.CommonExceptionCatcher',
'modoboa.lib.middleware.RequestCatcherMiddleware',
)

AUTHENTICATION_BACKENDS = (
#'modoboa.lib.authbackends.LDAPBackend',
#'modoboa.lib.authbackends.SMTPBackend',
'django.contrib.auth.backends.ModelBackend',
'modoboa.imap_migration.auth_backends.IMAPBackend',
)

SMTP authentication

#AUTH_SMTP_SERVER_ADDRESS = 'localhost'
#AUTH_SMTP_SERVER_PORT = 25
#AUTH_SMTP_SECURED_MODE = None # 'ssl' or 'starttls' are accepted

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
'debug': False,
},
},
]

ROOT_URLCONF = 'instance.urls'

WSGI_APPLICATION = 'instance.wsgi.application'

Database

https://docs.djangoproject.com/en/4.2/ref/settings/#databases

DATABASES = {

'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'modoboa',
    'USER': 'modoboa',
    'PASSWORD': '',
    'HOST': '127.0.0.1',
    'PORT': '5432',
    'ATOMIC_REQUESTS': True,
    
},

}

Internationalization

https://docs.djangoproject.com/en/4.2/topics/i18n/

LANGUAGE_CODE = 'en'

TIME_ZONE = 'Europe/Paris'

USE_I18N = True

USE_L10N = True

USE_TZ = True

Default primary key field type

https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'

Static files (CSS, JavaScript, Images)

https://docs.djangoproject.com/en/2.2/howto/static-files/

STATIC_URL = '/sitestatic/'
STATIC_ROOT = os.path.join(BASE_DIR, 'sitestatic')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

oAuth2 settings

OAUTH2_PROVIDER = {
'OIDC_ENABLED': True,
'OIDC_RP_INITIATED_LOGOUT_ENABLED': True,
'OIDC_RP_INITIATED_LOGOUT_ALWAYS_PROMPT': False,
'OIDC_RSA_PRIVATE_KEY': env.str('OIDC_RSA_PRIVATE_KEY', multiline=True),
'SCOPES': {
'openid': 'OpenID Connect scope',
'read': 'Read scope',
'write': 'Write scope',
'introspection': 'Introspect token scope',
},
'DEFAULT_SCOPES': ['openid', 'read', 'write'],
}

If CORS fail, you might want to try to set it to True

#CORS_ORIGIN_ALLOW_ALL = False

Rest framework settings

REST_FRAMEWORK = {
'DEFAULT_THROTTLE_RATES': {
'user': '300/minute',
'ddos': '5/second',
'ddos_lesser': '200/minute',
'login': '10/minute',
'password_recovery_request': '12/hour',
'password_recovery_totp_check': '25/hour',
'password_recovery_apply': '25/hour'
},
'DEFAULT_AUTHENTICATION_CLASSES': (
'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning',

}

SPECTACULAR_SETTINGS = {
'SCHEMA_PATH_PREFIX': r'/api/v[0-9]',
'TITLE': 'Modoboa API',
'VERSION': None,
'SERVE_PERMISSIONS': ['rest_framework.permissions.IsAuthenticated'],
}

Modoboa settings

#MODOBOA_CUSTOM_LOGO = os.path.join(MEDIA_URL, "custom_logo.png")

Path to Dovecot binaries in case of a non-standard installation

#DOVECOT_LOOKUP_PATH = ('/path/to/dovecot', )
#DOVEADM_LOOKUP_PATH = ('/path/to/doveadm', )

List of supported schemes if doveadm is not available, given by: doveadm pw -l

#DOVECOT_SUPPORTED_SCHEMES = 'SHA512-CRYPT SHA256-CRYPT'

DOVECOT_USER = 'vmail'

MODOBOA_API_URL = 'https://api.modoboa.org/1/'

DISABLE_DASHBOARD_EXTERNAL_QUERIES = False

PID_FILE_STORAGE_PATH = '/var/run'

REDIS

REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_QUOTA_DB = 0
REDIS_URL = 'redis://{}:{}/{}'.format(REDIS_HOST, REDIS_PORT, REDIS_QUOTA_DB)

To use unix socket, use this scheme instead

REDIS_HOST must point to the socket path

REDIS_URL = 'unix://{}?db={}'.format(REDIS_HOST, REDIS_QUOTA_DB)

RQ

RQ_QUEUES = {
'dkim': {
'HOST': REDIS_HOST,
'PORT': REDIS_PORT,
'DB': REDIS_QUOTA_DB,
'URL': REDIS_URL,
},
'modoboa': {
'HOST': REDIS_HOST,
'PORT': REDIS_PORT,
'DB': REDIS_QUOTA_DB,
'URL': REDIS_URL,
},
}

CACHE

CACHES = {
"default": {
"BACKEND": 'django.core.cache.backends.redis.RedisCache',
"LOCATION": REDIS_URL
}
}

Password validation

https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
{
'NAME': 'modoboa.core.password_validation.ComplexityValidator',
'OPTIONS': {
'upper': 1,
'lower': 1,
'digits': 1,
'specials': 0
}
},
]

2FA

OTP_TOTP_ISSUER = "mail.papageno.at"

Logging configuration

LOGGING = {
'version': 1,
'formatters': {
'syslog': {
'format': '%(name)s: %(levelname)s %(message)s'
},
},
'handlers': {
'mail-admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True
},
'syslog-auth': {
'class': 'logging.handlers.SysLogHandler',
'facility': SysLogHandler.LOG_AUTH,
'formatter': 'syslog',
'address': '/dev/log'
},
'syslog-mail': {
'class': 'logging.handlers.SysLogHandler',
'facility': SysLogHandler.LOG_MAIL,
'formatter': 'syslog'
},
'modoboa': {
'class': 'modoboa.core.loggers.SQLHandler',
}
},
'loggers': {
'django': {
'handlers': ['mail-admins'],
'level': 'ERROR',
'propagate': False
},
'modoboa.auth': {
'handlers': ['syslog-auth', 'modoboa'],
'level': 'INFO',
'propagate': False
},
'modoboa.admin': {
'handlers': ['modoboa'],
'level': 'INFO',
'propagate': False
},
'modoboa.policyd': {
'handlers': ['syslog-mail'],
'level': 'INFO',
'propagate': False
}
}
}

SILENCED_SYSTEM_CHECKS = [
"security.W019", # modoboa uses iframes to display e-mails
]

PHONENUMBER_DB_FORMAT = 'INTERNATIONAL'

Load settings from extensions

<!-- gh-comment-id:3083786319 --> @1stoneofjordan commented on GitHub (Jul 17, 2025): here the content of settings.py Django settings for instance project. For more information on this file, see https://docs.djangoproject.com/en/4.2/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/2.2/ref/settings/ """ from logging.handlers import SysLogHandler import os import environ env = environ.Env() # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.realpath(os.path.dirname(os.path.dirname(__file__))) environ.Env.read_env(os.path.join(BASE_DIR, '.env')) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [ 'mail.papageno.at', ] SITE_ID = 1 # A list of all the people who get code error notifications. When DEBUG=False # and a view raises an exception, Django will email these people with the full # exception information. # See https://docs.djangoproject.com/en/dev/ref/settings/#admins #ADMINS = [('Administrator', 'admin@example.net')] # The email address that error messages come from, such as those sent to ADMINS #SERVER_EMAIL = 'webmaster@example.net' # Security settings X_FRAME_OPTIONS = "SAMEORIGIN" CSRF_COOKIE_SECURE = True SESSION_COOKIE_SECURE = True # Application definition INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.sites', 'django.contrib.staticfiles', 'reversion', 'oauth2_provider', 'corsheaders', 'rest_framework', 'rest_framework.authtoken', 'drf_spectacular', 'phonenumber_field', 'django_otp', 'django_otp.plugins.otp_totp', 'django_otp.plugins.otp_static', 'django_rename_app', 'django_rq', ) # A dedicated place to register Modoboa applications # Do not delete it. # Do not change the order. MODOBOA_APPS = ( 'modoboa', 'modoboa.core', 'modoboa.lib', 'modoboa.admin', 'modoboa.transport', 'modoboa.relaydomains', 'modoboa.limits', 'modoboa.parameters', 'modoboa.dnstools', 'modoboa.policyd', 'modoboa.maillog', 'modoboa.pdfcredentials', 'modoboa.dmarc', 'modoboa.imap_migration', 'modoboa.autoreply', 'modoboa.sievefilters', 'modoboa.contacts', 'modoboa.calendars', # Modoboa extensions here. ) INSTALLED_APPS += MODOBOA_APPS AUTH_USER_MODEL = 'core.User' MIDDLEWARE = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'x_forwarded_for.middleware.XForwardedForMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'modoboa.core.middleware.LocalConfigMiddleware', 'modoboa.lib.middleware.CommonExceptionCatcher', 'modoboa.lib.middleware.RequestCatcherMiddleware', ) AUTHENTICATION_BACKENDS = ( #'modoboa.lib.authbackends.LDAPBackend', #'modoboa.lib.authbackends.SMTPBackend', 'django.contrib.auth.backends.ModelBackend', 'modoboa.imap_migration.auth_backends.IMAPBackend', ) # SMTP authentication #AUTH_SMTP_SERVER_ADDRESS = 'localhost' #AUTH_SMTP_SERVER_PORT = 25 #AUTH_SMTP_SECURED_MODE = None # 'ssl' or 'starttls' are accepted TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', ], 'debug': False, }, }, ] ROOT_URLCONF = 'instance.urls' WSGI_APPLICATION = 'instance.wsgi.application' # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'modoboa', 'USER': 'modoboa', 'PASSWORD': '', 'HOST': '127.0.0.1', 'PORT': '5432', 'ATOMIC_REQUESTS': True, }, } # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ LANGUAGE_CODE = 'en' TIME_ZONE = 'Europe/Paris' USE_I18N = True USE_L10N = True USE_TZ = True # Default primary key field type # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.2/howto/static-files/ STATIC_URL = '/sitestatic/' STATIC_ROOT = os.path.join(BASE_DIR, 'sitestatic') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # oAuth2 settings OAUTH2_PROVIDER = { 'OIDC_ENABLED': True, 'OIDC_RP_INITIATED_LOGOUT_ENABLED': True, 'OIDC_RP_INITIATED_LOGOUT_ALWAYS_PROMPT': False, 'OIDC_RSA_PRIVATE_KEY': env.str('OIDC_RSA_PRIVATE_KEY', multiline=True), 'SCOPES': { 'openid': 'OpenID Connect scope', 'read': 'Read scope', 'write': 'Write scope', 'introspection': 'Introspect token scope', }, 'DEFAULT_SCOPES': ['openid', 'read', 'write'], } # If CORS fail, you might want to try to set it to True #CORS_ORIGIN_ALLOW_ALL = False # Rest framework settings REST_FRAMEWORK = { 'DEFAULT_THROTTLE_RATES': { 'user': '300/minute', 'ddos': '5/second', 'ddos_lesser': '200/minute', 'login': '10/minute', 'password_recovery_request': '12/hour', 'password_recovery_totp_check': '25/hour', 'password_recovery_apply': '25/hour' }, 'DEFAULT_AUTHENTICATION_CLASSES': ( 'oauth2_provider.contrib.rest_framework.OAuth2Authentication', 'rest_framework.authentication.TokenAuthentication', 'rest_framework.authentication.SessionAuthentication', ), 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning', } SPECTACULAR_SETTINGS = { 'SCHEMA_PATH_PREFIX': r'/api/v[0-9]', 'TITLE': 'Modoboa API', 'VERSION': None, 'SERVE_PERMISSIONS': ['rest_framework.permissions.IsAuthenticated'], } # Modoboa settings #MODOBOA_CUSTOM_LOGO = os.path.join(MEDIA_URL, "custom_logo.png") # Path to Dovecot binaries in case of a non-standard installation #DOVECOT_LOOKUP_PATH = ('/path/to/dovecot', ) #DOVEADM_LOOKUP_PATH = ('/path/to/doveadm', ) # List of supported schemes if doveadm is not available, given by: doveadm pw -l #DOVECOT_SUPPORTED_SCHEMES = 'SHA512-CRYPT SHA256-CRYPT' # DOVECOT_USER = 'vmail' MODOBOA_API_URL = 'https://api.modoboa.org/1/' DISABLE_DASHBOARD_EXTERNAL_QUERIES = False PID_FILE_STORAGE_PATH = '/var/run' # REDIS REDIS_HOST = 'localhost' REDIS_PORT = 6379 REDIS_QUOTA_DB = 0 REDIS_URL = 'redis://{}:{}/{}'.format(REDIS_HOST, REDIS_PORT, REDIS_QUOTA_DB) # To use unix socket, use this scheme instead # REDIS_HOST must point to the socket path # REDIS_URL = 'unix://{}?db={}'.format(REDIS_HOST, REDIS_QUOTA_DB) # RQ RQ_QUEUES = { 'dkim': { 'HOST': REDIS_HOST, 'PORT': REDIS_PORT, 'DB': REDIS_QUOTA_DB, 'URL': REDIS_URL, }, 'modoboa': { 'HOST': REDIS_HOST, 'PORT': REDIS_PORT, 'DB': REDIS_QUOTA_DB, 'URL': REDIS_URL, }, } # CACHE CACHES = { "default": { "BACKEND": 'django.core.cache.backends.redis.RedisCache', "LOCATION": REDIS_URL } } # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, { 'NAME': 'modoboa.core.password_validation.ComplexityValidator', 'OPTIONS': { 'upper': 1, 'lower': 1, 'digits': 1, 'specials': 0 } }, ] # 2FA OTP_TOTP_ISSUER = "mail.papageno.at" # Logging configuration LOGGING = { 'version': 1, 'formatters': { 'syslog': { 'format': '%(name)s: %(levelname)s %(message)s' }, }, 'handlers': { 'mail-admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'include_html': True }, 'syslog-auth': { 'class': 'logging.handlers.SysLogHandler', 'facility': SysLogHandler.LOG_AUTH, 'formatter': 'syslog', 'address': '/dev/log' }, 'syslog-mail': { 'class': 'logging.handlers.SysLogHandler', 'facility': SysLogHandler.LOG_MAIL, 'formatter': 'syslog' }, 'modoboa': { 'class': 'modoboa.core.loggers.SQLHandler', } }, 'loggers': { 'django': { 'handlers': ['mail-admins'], 'level': 'ERROR', 'propagate': False }, 'modoboa.auth': { 'handlers': ['syslog-auth', 'modoboa'], 'level': 'INFO', 'propagate': False }, 'modoboa.admin': { 'handlers': ['modoboa'], 'level': 'INFO', 'propagate': False }, 'modoboa.policyd': { 'handlers': ['syslog-mail'], 'level': 'INFO', 'propagate': False } } } SILENCED_SYSTEM_CHECKS = [ "security.W019", # modoboa uses iframes to display e-mails ] PHONENUMBER_DB_FORMAT = 'INTERNATIONAL' # Load settings from extensions
Author
Owner

@1stoneofjordan commented on GitHub (Jul 17, 2025):

sorry for the TAB didnt recon i post fomat sign like #

<!-- gh-comment-id:3083789387 --> @1stoneofjordan commented on GitHub (Jul 17, 2025): sorry for the TAB didnt recon i post fomat sign like #
Author
Owner

@1stoneofjordan commented on GitHub (Jul 17, 2025):

here the query result

psql -d modoboa -c "SELECT name FROM oauth2_provider_application"
name

modoboa_frontend
Radicale
Dovecot
(3 rows)

<!-- gh-comment-id:3083796802 --> @1stoneofjordan commented on GitHub (Jul 17, 2025): here the query result psql -d modoboa -c "SELECT name FROM oauth2_provider_application" name ------------------ modoboa_frontend Radicale Dovecot (3 rows)
Author
Owner

@tonioo commented on GitHub (Jul 17, 2025):

You're missing 'modoboa.webmail' in MODOBOA_APPS variable

<!-- gh-comment-id:3083862300 --> @tonioo commented on GitHub (Jul 17, 2025): You're missing 'modoboa.webmail' in MODOBOA_APPS variable
Author
Owner

@1stoneofjordan commented on GitHub (Jul 17, 2025):

ok got webmail now accesible but is it possible we miss strings on other place to ? It shows me 3 unread mail if i click to folder or short after login it shows no new mail and gives me a verry (verry long) error message i saved in textfile and read it and as far as i can see there is a key error .

KeyError or should i clone a fresh installation from git ?
<!-- gh-comment-id:3084008397 --> @1stoneofjordan commented on GitHub (Jul 17, 2025): ok got webmail now accesible but is it possible we miss strings on other place to ? It shows me 3 unread mail if i click to folder or short after login it shows no new mail and gives me a verry (verry long) error message i saved in textfile and read it and as far as i can see there is a key error . <title>KeyError at /api/v2/webmail/emails/</title Exception Type:</th> <td>KeyError</td> <input type="hidden" name="title" value="KeyError at /api/v2/webmail/emails/"> or should i clone a fresh installation from git ?
Author
Owner

@tonioo commented on GitHub (Jul 17, 2025):

Can you give access to this textfile?

<!-- gh-comment-id:3084536694 --> @tonioo commented on GitHub (Jul 17, 2025): Can you give access to this textfile?
Author
Owner

@1stoneofjordan commented on GitHub (Jul 18, 2025):

sure i send it to you but i recon its only at domain admins , normal user are not affected . On normal user i have other issues like no right to change language to german for exampel but dont want to bother you with , i wills seach a bit by myself , overall thanks for you great work !

error.txt

<!-- gh-comment-id:3087717900 --> @1stoneofjordan commented on GitHub (Jul 18, 2025): sure i send it to you but i recon its only at domain admins , normal user are not affected . On normal user i have other issues like no right to change language to german for exampel but dont want to bother you with , i wills seach a bit by myself , overall thanks for you great work ! [error.txt](https://github.com/user-attachments/files/21311899/error.txt)
Author
Owner

@tonioo commented on GitHub (Jul 18, 2025):

Thanks to your trace, I've created the following fix: https://github.com/modoboa/modoboa/pull/3596

<!-- gh-comment-id:3089309307 --> @tonioo commented on GitHub (Jul 18, 2025): Thanks to your trace, I've created the following fix: https://github.com/modoboa/modoboa/pull/3596
Author
Owner

@oldstanda commented on GitHub (Aug 5, 2025):

Today I installed Modoboa 2.4.9 and I also get a blank page in webmail.

I can't describe it as well as @1stoneofjordan

<!-- gh-comment-id:3155476534 --> @oldstanda commented on GitHub (Aug 5, 2025): Today I installed Modoboa 2.4.9 and I also get a blank page in webmail. I can't describe it as well as @1stoneofjordan
Author
Owner

@tonioo commented on GitHub (Aug 6, 2025):

You're missing 'modoboa.webmail' in MODOBOA_APPS variable

@oldstanda Make sure about this and that you're using a valid certificate.

<!-- gh-comment-id:3160190819 --> @tonioo commented on GitHub (Aug 6, 2025): > You're missing 'modoboa.webmail' in MODOBOA_APPS variable @oldstanda Make sure about this and that you're using a valid certificate.
Author
Owner

@oldstanda commented on GitHub (Aug 6, 2025):

You're missing 'modoboa.webmail' in MODOBOA_APPS variable

@oldstanda Make sure about this and that you're using a valid certificate.

Thank you for your response. I will add a video https://www.youtube.com/watch?v=pim03SXNOWc

<!-- gh-comment-id:3160912287 --> @oldstanda commented on GitHub (Aug 6, 2025): > > You're missing 'modoboa.webmail' in MODOBOA_APPS variable > > [@oldstanda](https://github.com/oldstanda) Make sure about this and that you're using a valid certificate. Thank you for your response. I will add a video https://www.youtube.com/watch?v=pim03SXNOWc
Author
Owner

@oldstanda commented on GitHub (Aug 7, 2025):

Thank you very much. Webmail also works in Modoboa 2.4.10.

<!-- gh-comment-id:3165193123 --> @oldstanda commented on GitHub (Aug 7, 2025): Thank you very much. Webmail also works in Modoboa 2.4.10.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/modoboa-modoboa#1860
No description provided.