Skip to content

Discord bot for verifying the email domain of server members

License

Notifications You must be signed in to change notification settings

ctrl-space-org/EmailBot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EmailBot allows you to verify that your Discord server members have an email address with a specific domain.

Discord License

Invite: https://discord.com/api/oauth2/authorize?client_id=731027450607435846&permissions=268503040&scope=bot

Discord server: https://discord.gg/MfFMxu9

Usage

After inviting the bot to your server, a domain must be added using .dominadd domain. .vstatus is the help command:

User commands: 
   .verify -> Sends a DM to the user to verify their email
   .vstatus -> This help message

Admin commands: 
 - A domain must be added before users can be verified.
 - Use .rolechange instead of server settings to change the name of the verified role.
   .enableonjoin -> Enables verifying users on join
   .disableonjoin -> Disables verifying users on join
   .domainadd domain -> Adds an email domain
   .domainremove domain -> Removes an email domain
   .rolechange role -> Changes the name of the verified role

Domains: 
Verify when a user joins? (default=False): False
Verified role (default=Verified): Verified

Example

Let's say you want a Discord server just for people who have a @randomuniversity.edu email address. Add this bot to your server and when someone joins, they will get a DM asking for their @randomuniversity.edu email address. The bot then emails them a verification code. If they reply with the correct code, they get the "Verified" role.

Installation

Install the dependencies:

pip install -r requirements.txt

Before running it make sure these environment variables are set. You will need a Sendgrid and Discord account (both are free). Optionally consider making a Mailgun account, since this bot uses Mailgun when Sendgrid fails to send an email:

export SENDGRID_API_KEY='YOUR_SENDGRID_API_KEY'
export SENDGRID_EMAIL='YOUR_SENDGRID_EMAIL'
export DISCORD_TOKEN='YOUR_DISCORD_TOKEN'
export MAILGUN_API_KEY='YOUR_MAILGUN_API_KEY'
export MAILGUN_DOMAIN='YOUR_MAILGUN_DOMAIN'

Run the bot with:

python bot.py

Task list

  • Separate bot commands/events into cogs and put sqlite commands in a separate file
  • Make the flask server and scheduled sqlite backups optional
  • Allow roles with spaces to be added
  • Make the feature that allows users who leave to retain their Verified role when they join back, optional for the server admin
  • Add a .unverify member command
  • Use Role.id instead of Role.name

License

EmailBot is licensed under GNU GPL v3.

About

Discord bot for verifying the email domain of server members

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%