Secure. Compliant. High-Performance.

Minecraft SMTP
Redefined.

Bridge the gap between your server and your players. Send lightning-fast SMTP email verifications, newsletters, and rewards with built-in spam protection and full data compliance.

Flexible Deployment

Optimized for single servers and large networks alike.

Default: Standalone Mode

SIMPLE & DIRECT

Perfect for survival, creative, or skyblock servers that operate independently. All database records, SMTP connections, and command rewards run directly on your single server node.

  • Zero-proxy dependencies
  • Local SQLite store out-of-the-box
  • Direct SMTP TLS connection
Enterprise-Grade Network Mode

SYNCHRONIZED NETWORK

Built for BungeeCord and Velocity networks. The proxy handles the verification queue and routes secure player data between backends using signed cryptographic channels.

  • HMAC-SHA256 authenticated messaging
  • Prevent duplicate reward claims on sub-servers
  • Shared MySQL database syncing
๐Ÿ–ฅ๏ธ
Paper Server SMTP & Rewards
๐Ÿ“ง
SMTP Gateway Brevo / Gmail / SES
FLOW: Player (/verify) โ–ผ Direct SMTP TLS Send โ–ผ SMTP Inbox Callback
๐Ÿ”—
Proxy (Velocity) Verifications Coordinator
๐Ÿ–ฅ๏ธ
Lobby Spigot
โš”๏ธ
Survival Spigot
SECURED BY HMAC-SHA256 SIGNATURE VERIFICATION

Interactive Live Simulator

Experience how verification rewards look in-game and in your email inbox.

Minecraft Server Terminal
IP: 15.235.167.48
[04:32:00 INFO]: Server starting on port 25565...
[04:32:02 INFO]: [RetroMail] SMTP Client initiated successfully (TLS enabled).
[04:32:03 INFO]: Player Niloy joined the game.
Simulated Player Mailbox
Opt-in Sandbox
๐Ÿ“ญ

Inbox is empty

Trigger verification in the terminal on the left.

๐Ÿ“จ

Incoming Mail...

SMTP gateway sending payload securely...

From: AJA RETRO Network (noreply@ajaretro.dev) Just now

Verify your Minecraft Email Address

Hello ,

Thank you for playing on AJARETRO. Please verify your email to secure your account and unlock your verification rewards.

Token Code:

If you did not request this, please ignore this email. We respect your data privacy.

๐ŸŽ‰

Verification Successful!

Command rewards executed. Database status: Verified.

SECURE & COMPLIANT BY DESIGN

Why RetroMail is safe for servers and users.

LEGAL OK

RetroMail enforces absolute privacy compliance. Unlike legacy plugins that dump lists of emails to logfiles or unencrypted configs, RetroMail hashes sensitive keys, enforces double-opt-in, and uses encrypted local DB buffers.

HMAC VERIFICATION

No malicious entities can spoof callbacks or intercept player logs. RetroMail validates every server-to-server transaction on your proxy net using secure HMAC-SHA256 tokens matching local server descriptors.

CONVENIENCE

Integrated commands, customizable HTML templates, support for external SMTP gateways (Brevo Affiliation, Amazon SES, SendGrid, Gmail TLS), and zero lag during operations. Simple command logic that just works.

Documentation Hub

Comprehensive setup parameters, command permissions, and network setup options.

Installation & Setup

System Prerequisites

  • Java 17 or Java 21 runtime
  • SMTP Server Credentials (e.g. Brevo affiliate SMTP credentials, Amazon SES, or SendGrid)
  • Vault (optional, to reward players with coins)

Installation Flow

  1. Download the compiled RetroMail/PaperSMTP jar release.
  2. Place the jar in the /plugins folder of your server.
  3. Reboot the node to generate the default configuration.
  4. Configure your credentials under the smtp block in config.yml.

Default Config.yml

YAML Syntax
# RetroMail Configuration File
# Optimized for asynchronous in-game newsletter sub triggers

database:
  # Supported types: 'sqlite' or 'mysql'
  type: 'sqlite'
  
  # Configuration for SQLite
  sqlite:
    file: 'subscriptions.db'
    
  # Configuration for MySQL/MariaDB (for multi-server network setups)
  mysql:
    host: '127.0.0.1'
    port: 3306
    database: 'papersmtp'
    username: 'pelican'
    password: 'YOUR_DATABASE_PASSWORD'

# SMTP Mail Server Settings
smtp:
  host: 'smtp.gmail.com'
  port: 587
  username: 'niloyahmed2484@gmail.com'
  password: 'YOUR_SMTP_PASSWORD_HERE'
  ssl: false
  starttls: true
  from-address: 'update@ajaretro.dev'
  from-name: 'Retro Network'

# Email Verification Template
verification-email:
  subject: 'Verify your email on Retro Network'
  use-html: true
  html-file: 'email_template.html'
  body: "Hello {player},\n\nYour Minecraft email verification code is: {code}\n\nEnter this code in-game using /email verify {code} or via the in-game GUI menu to complete your subscription.\n\nRegards,\nRetro Network Staff"

# Verification Rewards (Commands are run via Console)
rewards:
  enabled: true
  commands:
    - "give {player} diamond 5"
    - "xp add {player} 100 points"
  messages:
    - "ยงaยงl[RetroMail] ยง7Thank you for verifying your email! You have received your rewards."

# Rate limit cooldown in seconds before a player can request another verification code
email-cooldown: 60

# Staff Web Mail Handler Configuration
mail-handler:
  enabled: true
  port: 8080
  domain: "ajaretro.dev"
  # Protected mail addresses restricted only to ADMIN users
  restricted-mailboxes:
    - "billing@ajaretro.dev"
    - "root@ajaretro.dev"
    - "admin@ajaretro.dev"

  # IMAP catch-all mailbox polling for receiving incoming replies
  imap:
    host: "imap.gmail.com"
    port: 993
    ssl: true
    username: "niloyahmed2484@gmail.com"
    password: "YOUR_IMAP_PASSWORD_HERE"
    poll-interval-seconds: 30

# Web Dashboard Branding & Links
branding:
  server-name: 'Retro Network'
  discord-link: 'https://discord.gg/retro'
  documentation-link: 'https://docs.ajaretro.dev'
  forum-link: 'https://forum.ajaretro.dev'

# Security Settings
security:
  # Secret token to secure and authenticate communication between Proxy and backend servers.
  secret-token: "YOUR_PROXY_SECRET_TOKEN"

Configuration Options Explained

database.type

Determines the database storage backend. Set to sqlite for local, zero-setup files, or mysql to sync subscription states across multi-server networks.

smtp.host & port

Connection host and port for your SMTP service. Use port 587 with TLS enabled (recommended) or 465 for strict SSL.

smtp.ssl & starttls

Configures connection encryption layers. Enable starttls for secure SMTP handshakes, or ssl for legacy SSL wrappers.

smtp.from-address & from-name

Defines the sender email and name displayed to users. The sending email domain must be validated in DNS to protect against spam filtering.

verification-email.use-html

When enabled (true), outputs high-quality dynamic HTML template emails. If disabled, defaults to raw text layout.

rewards.commands & messages

Commands to execute via console (e.g. Perms, Econ, Items) and chat messages to dispatch upon successful verification. Supports the player name placeholder {player}.

mail-handler.enabled & port

Fires up the embedded high-performance REST web server listening on the defined port to serve the web portal files to dashboard users.

branding Configuration Block

Alters the links and header server name dynamically inside both the Web Dashboard and outgoing emails (via email placeholders).

Brevo SMTP Integration Guide

Brevo provides a high-reliability cloud SMTP relay. You can register for a free account containing 300 free emails per day, which is perfect for most server communities.

  1. Register at Brevo.com.
  2. Go to your dashboard, click your profile menu, and select "SMTP & API".
  3. Under the "SMTP" tab, find your Host (smtp-relay.brevo.com), Port (587), and Login user.
  4. Click "Generate a new SMTP key", name it, and copy the password token.
  5. Insert the copied properties into your config.yml:
smtp:
  host: 'smtp-relay.brevo.com'
  port: 587
  username: 'your-brevo-registered-email@domain.com'
  password: 'your-generated-smtp-key'
  ssl: false
  starttls: true

Preventing Emails from falling into Spam

To guarantee emails land in the primary inbox rather than the spam folder, you must add the following TXT authentication records to your DNS provider (e.g. Cloudflare):

SPF Record (Sender Policy Framework) Required

Declares authorized SMTP sending servers for your domain.

Type: TXT  |  Name: @  |  Value: v=spf1 include:spf.sendinblue.com ~all
DKIM Record (DomainKeys Identified Mail) Required

Cryptographically signs outgoing headers to prove they weren't spoofed.

Type: TXT  |  Name: mail._domainkey  |  Value: [Copy DKIM key from Brevo console]
DMARC Record Policy Recommended

Instructs receiving servers how to handle emails failing SPF/DKIM checkouts.

Type: TXT  |  Name: _dmarc  |  Value: v=DMARC1; p=quarantine; pct=100; rua=mailto:reports@yourdomain.com
Important Domain Rule

Do NOT use generic emails (like yourname@gmail.com) inside your smtp.from-address. Sending Gmail addresses through third-party relays violates strict DMARC checks, triggering automatic spam folder routing. Use a custom domain instead (e.g. noreply@ajaretro.dev).

Dynamic Branding & Placeholders

โœ” Branding config applies to BOTH the web interface and outgoing emails!

By defining your project links under the branding config section, the changes will automatically display on the web portals AND substitute as placeholders in all templates dispatched by the mail server.

Supported Email Placeholders
{server-name}

Replaces with the configured server name.

{discord-link}

Replaces with your Discord invite link.

{documentation-link}

Replaces with your documentation URL.

{forum-link}

Replaces with your forum address.

Template Integration Example:

You can use these placeholders inside your verification HTML template or configuration body text:

Plugin Command Directory

Command Permission Description
No commands matched your query.