Problems during local JMAP setup regarding HTTP 405 response
stanimir at audriga.com
stanimir at audriga.com
Wed Apr 15 01:34:58 EDT 2020
Hello everyone,
I'm currently trying to test a JMAP client library against a locally
running Cyrus instance.
The issue which I'm experiencing is that when trying to make a JMAP
request like the one described in the docs here:
https://www.cyrusimap.org/dev/imap/developer/jmap.html, I'm getting a
"405 Method Not Allowed" response.
My setup is:
- OS: Debian Bullseye
- Cyrus version: 3.2.0-beta3-Debian-3.2.0~beta3-1 (I got the Cyrus as a
Debian package and managed to get it running)
Here are my .conf files:
=== cyrus.conf ===
START {
recover cmd="/usr/sbin/cyrus ctl_cyrusdb -r"
delprune cmd="/usr/sbin/cyrus expire -E 3"
tlsprune cmd="/usr/sbin/cyrus tls_prune"
}
SERVICES {
imap cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100
#imaps cmd="imapd -s -U 30" listen="imaps" prefork=0
maxchild=100
pop3 cmd="pop3d -U 30" listen="pop3" prefork=0 maxchild=50
#pop3s cmd="pop3d -s -U 30" listen="pop3s" prefork=0
maxchild=50
nntp cmd="nntpd -U 30" listen="nntp" prefork=0 maxchild=100
#nntps cmd="nntpd -s -U 30" listen="nntps" prefork=0
maxchild=100
#http cmd="httpd -U 30" listen="8008" prefork=0 maxchild=100
#https cmd="httpd -s -U 30" listen="8443" prefork=0
maxchild=100
http cmd="httpd" listen="http" prefork=0
https cmd="httpd -s" listen="https" prefork=0
lmtpunix cmd="lmtpd" listen="/run/cyrus/socket/lmtp" prefork=0
maxchild=20
sieve cmd="timsieved" listen="localhost:sieve" prefork=0
maxchild=100
notify cmd="notifyd" listen="/run/cyrus/socket/notify"
proto="udp" prefork=1
}
EVENTS {
checkpoint cmd="/usr/sbin/cyrus ctl_cyrusdb -c" period=30
delprune cmd="/usr/sbin/cyrus expire -E 3" at=0401
tlsprune cmd="/usr/sbin/cyrus tls_prune" at=0401
deleteprune cmd="/usr/sbin/cyrus expire -E 4 -D 28" at=0430
expungeprune cmd="/usr/sbin/cyrus expire -E 4 -X 28" at=0445
}
DAEMON {
squatter cmd="squatter -R"
}
=== imapd.conf ===
configdirectory: /var/lib/cyrus
proc_path: /run/cyrus/proc
mboxname_lockpath: /run/cyrus/lock
#defaultpartition: default
partition-default: /var/spool/cyrus/mail
# News setup
partition-news: /var/spool/cyrus/news
newsspool: /var/spool/news
altnamespace: no
unixhierarchysep: 1
lmtp_downcase_rcpt: yes
admins: cyrus imapuser
allowanonymouslogin: no
popminpoll: 1
autocreate_quota: 0
umask: 077
sieveusehomedir: false
sievedir: /var/spool/sieve
httpmodules: caldav carddav jmap
hashimapspool: true
allowplaintext: yes
sasl_pwcheck_method: auxprop
sasl_auto_transition: no
tls_client_ca_dir: /etc/ssl/certs
tls_session_timeout: 1440
lmtpsocket: /run/cyrus/socket/lmtp
idlesocket: /run/cyrus/socket/idle
notifysocket: /run/cyrus/socket/notify
syslog_prefix: cyrus
sync_log: on
sync_log_channels: squatter
search_engine: xapian
search_index_headers: no
search_batchsize: 8192
defaultpartition: base
defaultsearchtier: t1
partition-base: /var/cyrus/spool
t1searchpartition-base: /var/cyrus/search
conversations: 1
conversations_db: twoskip
calendarprefix: #calendars
I also ran an OPTIONS request for all paths (with the * operator) on
port 80 for localhost via telnet, which showed that pretty much all HTTP
methods are possible (including DAV). However, when running the OPTIONS
request for the /jmap route, only OPTIONS, GET and HEAD are allowed.
I would be very happy if somebody could offer some insights on this
issue.
Best regards,
Stanimir Bozhilov
More information about the Info-cyrus
mailing list