Issue Description
Hi there,
I have a Stalwart enterprise license and try to customise the calendar invite HTML. iMIP works, but when we add something to RSVP it breaks.
Expected Behavior
Adding HTML code to the RSVP template is rendered and used correctly.
Actual Behavior
Setting CalendarScheduling.httpRsvpTemplate (to supply a custom RSVP web-response page) also changes the base URL used for the RSVP links embedded in iMIP invitation emails. The code that builds itip_http_rsvp_url reads the http_rsvp_template field instead of http_rsvp_url. As a result, every Accept/Decline/Tentative link in the invitation email becomes &m=ACCEPTED and is broken. Separately, httpRsvpUrl - the setting documented to override the base URL - is never read.
Location: crates/common/src/config/groupware.rs, constructing itip_http_rsvp_url:
itip_http_rsvp_url: if sched.http_rsvp_enable {
if let Some(url) = sched
.http_rsvp_template // ā should be sched.http_rsvp_url
.as_deref()
.map(|v| v.trim().trim_end_matches(ā/ā))
.filter(|v| !v.is_empty())
{
Some(url.to_string())
} else {
Some(format!(āhttps://{}/calendar/rsvpā, system.default_hostname))
}
} else {
None
},
Expected: base URL comes from http_rsvp_url (falling back to https://{default_hostname}/calendar/rsvp);
http_rsvp_template is used only to render the web page.
Actual: base URL is taken from http_rsvp_template. With a custom template set, RSVP links become the
template HTML; http_rsvp_url has no effect.
PS: Do I really have to restart the stalwart docker container to trigger a reload?
Reproduction Steps
Reproduce
- Enterprise licence active.
- Set CalendarScheduling.httpRsvpTemplate to any HTML.
- Restart; create an event with an external attendee.
- Inspect the invitation email ā the Yes/No/Maybe hrefs are ā¦&m=ACCEPTED instead of
https:///calendar/rsvp?ā¦&m=ACCEPTED.
Impact: a custom RSVP web page cannot be used without breaking RSVP links in invitation emails; the httpRsvpUrl override is non-functional.
Suggested fix: read sched.http_rsvp_url (not sched.http_rsvp_template) when building itip_http_rsvp_url.
Stalwart Version
v0.16.x
Installation Method
Docker
Database Backend
RocksDB
Blob Storage
RocksDB
Search Engine
Internal
Directory Backend
Internal
I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.
on
I have searched this support forum (open and closed topics) and confirm this is not a duplicate.
on
I understand that topics in this category are triaged by a bot first but a human reply will follow up. If Iād prefer a human-only reply, Iāll add the no-ai tag to my topic.
on