gg2001 / EmailBot

Discord bot for verifying the email domain of server members
https://github.com/gg2001/EmailBot
GNU General Public License v3.0
46 stars 33 forks source link

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

License

EmailBot is licensed under GNU GPL v3.