Discord Prerequisites
Enable privileged intents in Discord Developer Portal: Presence Intent, Server Members Intent and Message Content Intent.
Presence Intent Server Members Intent Message Content Intent
Download
- Download the latest version from the GitHub Releases
- Extract the archive to a directory of your choice
Or use Docker:
docker pull ghcr.io/rustmail/rustmail:latest Configuration
The configuration file is required to start the bot.
- Use the configuration generator to create your
config.toml - Place the file in the same directory as the binary
Full configuration example:
[bot] token = "YOUR_BOT_TOKEN" status = "DM FOR SUPPORT" welcome_message = "Message received! Our staff will get back to you as soon as possible." close_message = "Thank you for contacting support! Your ticket is now closed." typing_proxy_from_user = true typing_proxy_from_staff = true enable_logs = true enable_features = true enable_panel = true client_id = YOUR_CLIENT_ID client_secret = "YOUR_CLIENT_SECRET" redirect_url = "http://YOUR_IP:3002/api/auth/callback" timezone = "Europe/Paris" logs_channel_id = YOUR_LOGS_CHANNEL_ID features_channel_id = YOUR_FEATURES_CHANNEL_ID ip = "http://YOUR_IP" panel_super_admin_users = [YOUR_USER_ID] panel_super_admin_roles = [] [bot.mode] type = "single" guild_id = YOUR_GUILD_ID [command] prefix = "!" [thread] inbox_category_id = YOUR_CATEGORY_ID embedded_message = true user_message_color = "3d54ff" staff_message_color = "ff3126" system_message_color = "00ff00" block_quote = true time_to_close_thread = 5 create_ticket_by_create_channel = true close_on_leave = false auto_archive_duration = 10080 [language] default_language = "en" fallback_language = "en" supported_languages = ["en", "fr", "es", "de"] [error_handling] show_detailed_errors = false log_errors = true send_error_embeds = true auto_delete_error_messages = true error_message_ttl = 30 display_errors = true [notifications] show_success_on_edit = false show_partial_success_on_edit = true show_failure_on_edit = true show_success_on_reply = false show_success_on_delete = false show_success = true show_error = true [reminders] embed_color = "ffb800" [logs] show_log_on_edit = true show_log_on_delete = true
Running
Once the config.toml file is in place, start the bot:
./rustmail With Docker:
docker run -v $(pwd)/config.toml:/app/config.toml ghcr.io/rustmail/rustmail:latest Slash Commands
| Command | Description | Usage |
|---|---|---|
/help | Display available commands | /help |
/ping | Check bot responsiveness | /ping |
/new_thread | Create a new ticket for a user | /new_thread <user> |
/close | Close the current ticket | /close [time] [silent] [cancel] |
/reply | Send a message to the ticket user | /reply <content> [attachment] [anonymous] |
/edit | Edit a previous message you sent | /edit <message_id> <new_content> |
/delete | Delete a message you sent | /delete <message_id> |
/take | Assign yourself to the ticket (claim) | /take |
/release | Release your assignment from the ticket | /release |
/add_staff | Grant a staff member access to the ticket | /add_staff <user> |
/remove_staff | Remove a staff member's access | /remove_staff <user> |
/move_thread | Move a ticket to a different category | /move_thread <category> |
/add_reminder | Set a reminder for the current ticket | /add_reminder <time> [content] |
/alert | Get notified when the ticket receives a message | /alert [cancel] |
/logs | View ticket history and logs | /logs |
/id | Display the ticket user's Discord ID | /id |
/snippet | Use a saved snippet | /snippet <key> |
/status | View or change the bot's status | /status [new_status] |
Text Commands
Default prefix: !
| Command | Description | Usage |
|---|---|---|
!help | Display available commands | !help |
!ping | Check bot responsiveness | !ping |
!new_thread | Create a new ticket for a user | !new_thread <user_id> |
!close | Close the current ticket | !close [time] [-s|--silent] [-c|--cancel] |
!reply | Send a message to the ticket user | !reply <content> |
!anonreply | Send an anonymous reply | !anonreply <content> |
!edit | Edit a previous message you sent | !edit <message_id> <new_content> |
!delete | Delete a message you sent | !delete <message_id> |
!take | Assign yourself to the ticket (claim) | !take |
!release | Release your assignment from the ticket | !release |
!add_staff | Grant a staff member access to the ticket | !add_staff <user_id> |
!remove_staff | Remove a staff member's access | !remove_staff <user_id> |
!move_thread | Move a ticket to a different category | !move_thread <category_name> |
!alert | Get notified when the ticket receives a message | !alert [cancel] |
!snippet | Use a saved snippet | !snippet <key> |