Documentation

Getting Started

Set up Badex Signature for Microsoft 365 or any SMTP email platform in under 5 minutes.

Microsoft 365
Introduction Prerequisites Connect Microsoft 365 Add Your Domain Configure DKIM Create Signature Template Setup Exchange Connector Test & Go Live
Generic SMTP
SMTP Introduction SMTP Prerequisites Create SMTP Account Configure cPanel Configure Plesk Configure Roundcube Configure Thunderbird SMTP Test & Go Live
Platform Guides
🟠 cPanel / WHM 🔵 Plesk 🔷 Roundcube 🟢 DirectAdmin 🦊 Thunderbird 📘 Outlook 🍎 Apple Mail
Resources
API Reference → PowerShell Guide →
🏢 Microsoft 365 Setup

Introduction

Badex Signature is a server-side email signature management platform — no Outlook add-ins, no per-user installation, no user training required.

For Microsoft 365, outbound emails are routed via an Exchange Online connector to Badex. The correct signature is applied per sender using data synced from Azure AD, and the email is redelivered through Microsoft Graph API — fully authenticated and DKIM signed. For generic SMTP servers, configure smtp.signature.badex.app:587 as your outbound relay and signatures are applied automatically before delivery.

Zero client-side installation.

Works with Outlook, Mac Mail, Thunderbird, iOS Mail, Android — any email client.

Prerequisites

  • Microsoft 365 tenant with Exchange Online
  • Global Administrator or Exchange Administrator role
  • Access to your domain's DNS settings
  • PowerShell with ExchangeOnlineManagement module

Connect Microsoft 365

Go to Microsoft 365 in your Badex dashboard and click Connect Tenant. You'll be redirected to Microsoft's OAuth consent screen.

Grant the following permissions:

  • User.Read.All — Read all user profiles from Azure AD
  • Organization.Read.All — Read organization info
  • Mail.Send — Send emails via Microsoft Graph API

After consent, Badex will automatically import all users from your directory and keep them in sync.

Add Your Domain

Go to Domains and click New Domain. Enter your email domain (e.g., company.com) and select Microsoft 365 as the domain type. Badex will automatically generate a 2048-bit RSA DKIM key pair.

Configure DKIM

After adding your domain, you'll see the DNS records to add. For Microsoft 365 domains, use the selector1 CNAME record provided by Microsoft:

# DKIM CNAME (Microsoft 365)
Type: CNAME
Name: selector1._domainkey.company.com
Value: selector1-company-com._domainkey.yourtenant.onmicrosoft.com

# SPF Record
Type: TXT
Name: company.com
Value: v=spf1 include:spf.protection.outlook.com ip4:157.173.98.136 -all

# DMARC Record
Type: TXT
Name: _dmarc.company.com
Value: v=DMARC1; p=quarantine; rua=mailto:dmarc@company.com

Create Signature Template

Go to Templates and click New Template. Use our drag-and-drop editor to design your signature. The following variables are replaced automatically per sender using data from Azure AD:

<?php echo e(full_name); ?> Full name of the sender
<?php echo e(first_name); ?> First name
<?php echo e(last_name); ?> Last name
<?php echo e(title); ?> Job title
<?php echo e(email); ?> Email address
<?php echo e(phone); ?> Office phone
<?php echo e(mobile); ?> Mobile phone
<?php echo e(department); ?> Department
<?php echo e(company_name); ?> Company name
<?php echo e(website); ?> Company website
<?php echo e(company_logo); ?> Company logo (from Settings)
<?php echo e(linkedin_url); ?> LinkedIn profile URL
<?php echo e(twitter_url); ?> Twitter/X profile URL
<?php echo e(skype); ?> Skype username
<?php echo e(address); ?> Office address
<?php echo e(custom_field_1); ?> Custom field 1 (configurable)
<?php echo e(custom_field_2); ?> Custom field 2 (configurable)
<?php echo e(custom_field_3); ?> Custom field 3 (configurable)

Setup Exchange Connector

Go to Microsoft 365 → Connector Script and copy the auto-generated PowerShell script. Run it in Exchange Online PowerShell to create the outbound connector that routes mail through Badex:

Install-Module ExchangeOnlineManagement -Scope CurrentUser -Force
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline

# The script creates:
# 1. An outbound connector routing mail to smtp.signature.badex.app
# 2. A transport rule to prevent duplicate processing
ℹ️ How it works:

When a user sends an email, Exchange routes it to Badex via the connector. Badex applies the correct signature based on the sender, then redelivers the email through Microsoft Graph API — ensuring full SPF, DKIM and DMARC compliance.

Test & Go Live

Send a test email from Outlook to an external address (e.g., Gmail). Verify that:

  • The signature appears correctly at the bottom of the email
  • DKIM shows as PASS in Gmail's "Show original"
  • SPF shows as PASS
  • DMARC shows as PASS
💡 Tip:

Send a test to check-auth2@verifier.port25.com — you'll receive an automatic deliverability report showing SPF, DKIM and DMARC results.

📧 Generic SMTP Setup

SMTP Introduction

Generic SMTP support works with any email platform that supports SMTP port 587 + STARTTLS — cPanel, Plesk, Roundcube, DirectAdmin, Thunderbird, Apple Mail, and more. No Microsoft 365 required.

Configure smtp.signature.badex.app:587 as your outbound SMTP server. Every email sent through Badex is DKIM signed and has the correct signature applied per sender before delivery to the recipient's mail server.

📡 SMTP Connection Settings
Server: smtp.signature.badex.app
Port: 587
Security: STARTTLS
Auth: PLAIN / LOGIN
Username: your-email@yourdomain.com
Password: your-badex-smtp-password

SMTP Prerequisites

  • A Badex account with a Generic SMTP plan (Solo, Studio, Agency or Reseller)
  • Access to your domain's DNS settings (for DKIM/SPF/DMARC)
  • Access to your email platform settings (cPanel, Plesk, etc.)

Create SMTP Account

In your Badex dashboard, go to SMTP Accounts and click New Account. Enter the email address and a password. The email domain must be registered in your Domains section first.

You can also bulk-import users via CSV with the format: email,password,display_name

💡 Tip: Add your domain first in Domains → New Domain, then configure DNS records before creating SMTP accounts.

Configure cPanel

Log into cPanel and navigate to Email → Email Routing or configure the outbound SMTP relay:

# cPanel → Email → SMTP Relay
Outgoing SMTP Server: smtp.signature.badex.app
Port: 587
Security: STARTTLS
Username: user@yourdomain.com
Password: your-badex-password

# For WHM-level relay (all accounts):
# WHM → Service Configuration → Exim Configuration Manager
Smarthost: smtp.signature.badex.app::587

Configure Plesk

In Plesk, go to Tools & Settings → Mail Server Settings → Outgoing Mail:

Relay host: smtp.signature.badex.app
Port: 587
SMTP authentication: Yes
Username: user@yourdomain.com
Password: your-badex-password
Connection security: STARTTLS

Configure Roundcube

In Roundcube webmail, go to Settings → Preferences → SMTP Server:

SMTP Server: smtp.signature.badex.app
SMTP Port: 587
Encryption: STARTTLS
Username: user@yourdomain.com
Password: your-badex-password

Or configure at the server level in config/config.inc.php:

$config['smtp_server'] = 'tls://smtp.signature.badex.app';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';

Configure Thunderbird

In Thunderbird, go to Account Settings → Outgoing Server (SMTP) and click Add:

Server Name: smtp.signature.badex.app
Port: 587
Connection Security: STARTTLS
Authentication: Normal password
User Name: user@yourdomain.com

SMTP Test & Go Live

Send a test email to an external address (e.g., Gmail) and verify:

  • The signature appears correctly at the bottom of the email
  • DKIM shows as PASS in Gmail's "Show original"
  • SPF shows as PASS (make sure ip4:157.173.98.136 is in your SPF record)
  • DMARC shows as PASS
🎉 That's it!

Every email sent through Badex SMTP will now have your professional signature automatically applied and DKIM signed. No plugins, no add-ins, no per-user setup.