Commands
๐ค User Commands
These commands can be used by any user.
| Command | Description |
|---|---|
/verify |
Start the email verification process to get access to the server |
/data delete-user |
Delete your personal verification data and remove your verified status |
๐ง Administrator Commands
The following commands require administrator permissions.
๐ฅ Role Configuration
Configure which roles are assigned during the verification process.
Default Roles
Default roles are given to all verified users, regardless of their email domain.
| Command | Description |
|---|---|
/role add <role> |
Add a role to the default roles list |
/role remove <role> |
Remove a role from the default roles list |
/role list |
View all configured default roles |
/role unverified [role] |
Set or view the optional role for unverified members (select current role to disable) |
Domain-Specific Roles
Assign different roles based on which email domain the user verifies with. Users receive their domain-specific roles plus any default roles.
| Command | Description |
|---|---|
/domainrole add <domain> <role> |
Add a role for a specific email domain |
/domainrole remove <domain> <role> |
Remove a role from a specific domain |
/domainrole list |
View all domain-role mappings |
/domainrole clear <domain> |
Remove all roles for a specific domain |
Domain Role Examples
| Setup | Result |
|---|---|
Default: @MemberDomain: @*.edu โ @Student |
User with @stanford.edu gets: @Student, @Member |
Default: @VerifiedDomain: @company.com โ @Employee, @Staff |
User with @company.com gets: @Employee, @Staff, @Verified |
Domain: @*.harvard.edu โ @HarvardDomain: @*.edu โ @Student |
User with @cs.harvard.edu gets: @Harvard, @Student (all matching patterns) |
๐ก Tip: When using
/domainrole add, the domain field autocompletes with your configured domains from/domain add.
๐ง Domain Management
Control which email domains are allowed for verification.
| Command | Description |
|---|---|
/domain add <domains> |
Add allowed email domains (comma-separated for multiple) |
/domain remove <domains> |
Remove allowed domains |
/domain list |
View all currently allowed domains |
/domain clear |
Remove all allowed domains |
Wildcard Support
Use * as a wildcard to match any text:
| Pattern | Matches | Example |
|---|---|---|
@gmail.com |
Only Gmail | user@gmail.com โ |
@*.edu |
Any .edu domain | user@stanford.edu โ, user@mit.edu โ |
@*.harvard.edu |
Harvard subdomains | user@cs.harvard.edu โ, user@law.harvard.edu โ |
@company.com |
Specific company | user@company.com โ |
๐ซ Blacklist Management
Block specific email addresses or patterns from verifying. Supports * wildcard.
| Command | Description |
|---|---|
/blacklist add <patterns> |
Add patterns to the blacklist (supports * wildcard) |
/blacklist remove <patterns> |
Remove patterns from the blacklist |
/blacklist list |
View all blacklisted entries |
/blacklist clear |
Remove all entries from the blacklist |
Blacklist Wildcard Examples
| Pattern | Blocks | Example Matches |
|---|---|---|
spam@example.com |
Specific email | spam@example.com |
*@tempmail.* |
All tempmail domains | user@tempmail.com, test@tempmail.net |
*spam* |
Emails containing "spam" | spam@gmail.com, myspammail@test.com |
test*@* |
Emails starting with "test" | test123@gmail.com, testuser@company.com |
โ๏ธ Settings
Configure bot behavior and preferences.
| Command | Description |
|---|---|
/settings language <language> |
Change the bot's display language |
/settings log-channel [channel] |
Set a channel for verification logs (leave empty to disable) |
/settings verify-message [message] |
Set a custom message for verification emails (leave empty for default) |
/settings auto-verify <enable> |
Automatically prompt new members to verify when they join |
/settings auto-unverified <enable> |
Automatically assign the unverified role to new members |
/settings email-style <plain\|styled> [confirm] |
Choose plain text (default) or HTML rendering for verification emails. Switching to styled requires confirm:True because HTML mail is more likely to be filtered as spam. |
๐ก๏ธ Moderation & Setup
| Command | Description |
|---|---|
/button <channel> <buttontext> [title] [message] [color] |
Create a verification button embed in a channel |
/manualverify <user> <email> |
Manually verify a user without email confirmation |
/set_error_notify owner |
Send error notifications to the server owner (default) |
/set_error_notify channel <channel> |
Send error notifications to a specific channel |
/set_error_notify user <user> |
Send error notifications to a specific user via DM |
/set_error_notify status |
View current error notification settings |
๐ Premium
Manage paid plans, credit packs, and the CSV unlock.
| Command | Description |
|---|---|
/premium status |
Show this server's current plan, monthly email usage, remaining bonus credits, and CSV unlock status |
/premium redeem |
Apply purchases (credit packs, CSV unlock) to this server |
How redemption works
EmailVerify's premium features are sold through Discord's native subscription and consumable system. There is one important detail to know:
Purchases are bound per server, not per user.
When you click a Premium button (in
/premium statusor in the limit-reached embed) and complete the purchase in Discord, the credits or unlock you bought are not yet active. You must run/premium redeeminside the Discord server where you want the purchase to apply. Subscriptions track the server selected at the time of purchase. Credit packs and the CSV unlock are consumed by/premium redeemand become permanently bound to that server โ they cannot be transferred to another server afterwards.
If /premium redeem reports "no unredeemed purchases", check that:
- you are running the command in the correct server (the one you want the benefit applied to);
- you are using the same Discord account that completed the purchase;
- the purchase has finished processing (Discord usually takes 1โ2 minutes).
What free users get
Each server gets a small monthly free quota of verification emails (default 25 per month). The bot will warn admins via the configured error-notification channel as the quota approaches: at 80%, at 95%, and again when the limit is reached. Quota resets at the start of each calendar month.
When subscriptions are active, mails for paying servers are routed through Zoho ZeptoMail (EU endpoint, premium deliverability). Free-tier and bonus-credit mails continue to be sent through the operator's SMTP. If ZeptoMail is unreachable, the bot falls back to self-SMTP and notifies the operator.
๐ Information
| Command | Description |
|---|---|
/status |
View bot configuration, verification statistics, and check for setup issues |
/help |
Show setup instructions and command overview |
โ ๏ธ Data Management (Danger Zone)
| Command | Description |
|---|---|
/data delete-server |
Delete all server data and remove the bot from the server |
โ ๏ธ Important Notes
Role Hierarchy
The EmailBot role must be higher in the role hierarchy than both the verified and unverified roles. Otherwise, you'll see this error:
Can't find roles. Please contact the admin!

Unverified Role Usage
The unverified role can be used to:
- Make a verification channel visible only to unverified users
- Restrict access to most channels until users verify
- Combined with /settings auto-unverified, automatically restrict new members
Role Display in Verification
When domain-specific roles are configured, the verification modal shows users which roles they will receive:
This helps users understand what access they'll get before verifying.