Email verification and specialized AI powered query bot for UTM JBC.
This is the official bot for the UTMJBC Discord server. It handles email verification for students and provides an AI-powered query system to answer questions relevant to UTM students.
⚠️ Disclaimer: UTM Johor Bahru Community (UTMJBC) and this project are not affiliated with or endorsed by Universiti Teknologi Malaysia (UTM) in any way. This is an independent student-run community.
| Command | Description |
|---|---|
/verify |
Start the email verification process |
/data delete-user |
Delete your verification data and remove verified status |
| Command | Description |
|---|---|
/role add <role> |
Add a default role given to all verified users |
/role remove <role> |
Remove a role from the default roles list |
/role list |
View all default roles |
/role unverified [role] |
Set or view the optional role for unverified members |
| Command | Description |
|---|---|
/domainrole add <domain> <role> |
Add a role for a specific email domain |
/domainrole remove <domain> <role> |
Remove a role from a domain |
/domainrole list |
View all domain-role mappings |
/domainrole clear <domain> |
Remove all roles for a domain |
| Command | Description |
|---|---|
/domain add <domains> |
Add allowed email domains (supports * wildcard) |
/domain remove <domains> |
Remove allowed domains |
/domain list |
View all allowed domains |
/domain clear |
Remove all allowed domains |
| Command | Description |
|---|---|
/blacklist add <patterns> |
Block email patterns (supports * wildcard) |
/blacklist remove <patterns> |
Unblock patterns |
/blacklist list |
View all blacklisted entries |
/blacklist clear |
Remove all blacklist entries |
| Command | Description |
|---|---|
/settings language <lang> |
Change the bot’s language |
/settings log-channel [channel] |
Set or disable the verification log channel |
/settings verify-message [message] |
Set or reset custom message in verification emails |
/settings auto-verify <enable> |
Auto-prompt new members to verify on join |
/settings auto-unverified <enable> |
Auto-assign unverified role to new members |
| Command | Description |
|---|---|
/button <channel> <buttontext> |
Create a verification button embed in a channel |
/manualverify <user> <email> |
Manually verify a user without email confirmation |
/set_error_notify |
Configure where error notifications are sent |
| Command | Description |
|---|---|
/status |
View bot configuration, statistics, and check for issues |
/help |
Show setup instructions and command overview |
| Command | Description |
|---|---|
/data delete-user |
Delete your personal verification data |
/data delete-server |
Delete all server data and reset the bot |
⚠️ Note: Most commands require administrator permissions
The bot role must be higher in the role hierarchy than the verified and unverified roles, otherwise role assignment will fail.
mkdir emailverify && cd emailverify
mkdir config
nano config/config.json
{
"token": "<Discord Bot Token>",
"clientId": "<Discord Bot Client ID>",
"email": "<Email Address>",
"username": "<Mail Server Username>",
"password": "<Email Password>",
"smtpHost": "<SMTP Server>",
"isGoogle": false
}
version: '3'
services:
emailverify:
image: ghcr.io/lkaesberg/emailverify:latest
ports:
- 8181:8181
volumes:
- ./config:/usr/app/config
restart: always
docker-compose up -d
Requirements: Node.js v16.15.0 or higher
git clone https://github.com/mrc2rules/EmailVerify.git
cd EmailVerify
nano config/config.json
{
"token": "<Discord Bot Token>",
"clientId": "<Discord Bot Client ID>",
"email": "<Email Address>",
"username": "<Mail Server Username>",
"password": "<Email Password>",
"smtpHost": "<SMTP Server>",
"isGoogle": false
}
npm install
npm start
| Option | Description |
|---|---|
token |
Your Discord Bot Token from the Discord Developer Portal |
clientId |
Your Discord Bot’s Client ID |
email |
The email address that will send verification codes |
username |
SMTP server username (usually your email address) |
password |
SMTP server password or App Password |
smtpHost |
Your SMTP server (e.g., smtp.gmail.com) |
isGoogle |
Set to true if using Gmail |
💡 Gmail Users: You need to create an App Password instead of using your regular password.
Type email in the console to enable debugging messages for email errors.
This bot is based on EmailVerify by Lars Kaesberg.