Email Configuration¶
RoomVox sends two types of emails, each with their own configuration requirements.
Two Email Flows¶
1. RoomVox Notifications (MailService)¶
Booking confirmations, declines, conflicts, cancellations, and manager approval requests. Sent by lib/Service/MailService.php.
Recipients: - Organizer (confirmation, decline, conflict, cancellation) - Room managers (approval request, cancellation)
2. Nextcloud CalDAV Invitations (iMIP)¶
Calendar invitations (.ics) to external attendees of an event. Sent by Nextcloud's own DAV scheduling via the IMipService.
Nextcloud SMTP Configuration (Required)¶
Both email flows use the Nextcloud SMTP configuration as their foundation. This must be properly configured.
Via Admin UI¶
Settings > Administration > Basic settings > Email server
Via config.php¶
'mail_smtpmode' => 'smtp',
'mail_smtphost' => 'smtp.provider.com',
'mail_smtpport' => 587,
'mail_smtpsecure' => 'tls', // Required for port 587 (STARTTLS)
'mail_smtpauth' => true,
'mail_smtpname' => 'user@provider.com',
'mail_smtppassword' => 'password',
'mail_from_address' => 'noreply', // Part before the @
'mail_domain' => 'provider.com', // Domain
Via occ Commands¶
sudo -u www-data php occ config:system:set mail_smtpmode --value smtp
sudo -u www-data php occ config:system:set mail_smtphost --value smtp.provider.com
sudo -u www-data php occ config:system:set mail_smtpport --value 587 --type integer
sudo -u www-data php occ config:system:set mail_smtpsecure --value tls
sudo -u www-data php occ config:system:set mail_smtpauth --value true --type boolean
sudo -u www-data php occ config:system:set mail_smtpname --value user@provider.com
sudo -u www-data php occ config:system:set mail_smtppassword --value password
sudo -u www-data php occ config:system:set mail_from_address --value noreply
sudo -u www-data php occ config:system:set mail_domain --value provider.com
Common Errors¶
| Error | Cause | Solution |
|---|---|---|
550 5.1.8 Sender address rejected: Domain not found |
Sender domain doesn't exist in DNS | Use a valid domain in mail_from_address + mail_domain |
Connection timed out |
mail_smtpsecure not set |
Set mail_smtpsecure to tls for port 587 |
Authentication failed |
Wrong credentials | Check mail_smtpname and mail_smtppassword |
Room Email Addresses¶
Each room has an email address used for two purposes:
CalDAV Scheduling (Internal)¶
The room email address is the CalDAV address used when the room is added as an attendee to events. Nextcloud uses this for internal scheduling (iTIP messages).
If no custom email is set, RoomVox auto-generates an internal address: <room-id>@roomvox.local. This works fine for CalDAV — the domain doesn't need to exist.
SMTP Sender (Optional)¶
If a room has a real external email address (e.g., boardroom@company.com), RoomVox uses it as the From address for notification emails. This makes emails appear to come from the room.
If the room email ends with @roomvox.local, it is not used as sender. In that case, Nextcloud's system sender address (mail_from_address@mail_domain) is used instead.
When to Set a Custom Email¶
| Situation | Recommendation |
|---|---|
Room has its own mailbox (e.g., room1@company.com) |
Set as room email |
| SMTP provider allows multiple senders | Set email — notifications come from the room |
| Only CalDAV scheduling needed | Leave empty — auto-generated @roomvox.local suffices |
| SMTP provider allows only one sender | Leave empty — NC system sender is used |
Per-Room SMTP (Optional)¶
Each room can have its own SMTP server configured in the Room Editor (SMTP Configuration section). When set, RoomVox uses this server instead of the Nextcloud SMTP configuration.
How It Works¶
- The SMTP username is used as envelope sender (not the room email address)
- If the room email differs from the SMTP username, the room email is set as Reply-To
- The SMTP password is stored encrypted via
ICrypto
Configuration Fields¶
| Field | Description |
|---|---|
| Host | SMTP server hostname (e.g., smtp.company.com) |
| Port | SMTP port (default: 587, range: 1–65535) |
| Username | SMTP authentication username |
| Password | SMTP authentication password |
| Encryption | TLS (STARTTLS), SSL, or None |
When to Use Per-Room SMTP¶
- Each room has its own email account
- Your organization wants emails to come from different addresses per room
- The global Nextcloud SMTP should not be used for room notifications
Testing¶
Use the Send test email button in the room editor's SMTP section to verify the configuration.
Email Checklist¶
- Nextcloud SMTP configured — including
mail_smtpsecure - Email notifications enabled — RoomVox admin > Settings > "Enable email notifications"
- Managers have email addresses — Nextcloud user settings > Email
- Organizers have email addresses — otherwise confirmations can't be sent
- iMIP invitations enabled —
occ config:app:set dav sendInvitations --value yes - Test via Room Editor — "Send test email" button in the SMTP section