Configuration
Navigate to Settings → Integrations → Add Integration → SMTP.Basic Settings
Authentication Type
Notifuse supports two authentication methods:Basic Authentication
For traditional SMTP servers or services that support app passwords.OAuth2 Authentication
OAuth2 is required for Microsoft 365 and Gmail since they have deprecated basic authentication.Microsoft 365 OAuth2
Prerequisites
- Microsoft 365 Business account (not personal Outlook.com)
- Azure AD admin access
- Exchange Online admin access
Step 1: Register Azure AD Application
- Go to Azure Portal → Azure Active Directory → App registrations
- Click New registration
- Enter a name (e.g., “Notifuse SMTP”)
- Select Accounts in this organizational directory only (Single tenant)
- Click Register
- Note the Application (client) ID and Directory (tenant) ID
Step 2: Create Client Secret
- In your app registration, go to Certificates & secrets
- Click New client secret
- Add a description and select expiry period
- Click Add
- Copy the secret value immediately (it won’t be shown again)
Step 3: Add API Permission
- Go to API permissions → Add a permission
- Select APIs my organization uses
- Search for Office 365 Exchange Online
- Select Application permissions
- Check SMTP.SendAsApp
- Click Add permissions
- Click Grant admin consent for [Your Organization]
Step 4: Register Service Principal in Exchange Online
This step is critical and often missed. Connect to Exchange Online PowerShell:Step 5: Grant Mailbox Permission
Grant the service principal permission to send as a specific mailbox:Step 6: Enable SMTP AUTH on the Mailbox
SMTP AUTH must be enabled on the sending mailbox. This can be done via Microsoft 365 Admin Center or PowerShell: Option A: Microsoft 365 Admin Center- Go to Users → Active users
- Select the sender user
- Click Mail tab → Manage email apps
- Check Authenticated SMTP
- Click Save changes
Step 7: Configure in Notifuse
Gmail OAuth2
Prerequisites
- Google account (personal Gmail or Google Workspace)
- Google Cloud Console access
- Terminal with
curlinstalled
Step 1: Create Google Cloud Project
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Gmail API:
- Go to APIs & Services → Library
- Search for “Gmail API” and enable it
Step 2: Configure OAuth Consent Screen
- Go to APIs & Services → OAuth consent screen
- Select External user type (or Internal for Workspace)
- Fill in app information:
- App name: “Notifuse” (or your choice)
- User support email: Your email
- Developer contact: Your email
- Click Save and Continue
- On the Scopes page, click Add or Remove Scopes
- Add scope:
https://mail.google.com/ - Click Save and Continue
- On Test users page, add your Gmail address
- Click Save and Continue to complete the wizard
Step 3: Publish Your App (Required for Long-Lived Tokens)
- Go to APIs & Services → OAuth consent screen
- Click Publish App
- Confirm by clicking Confirm
No Google Verification Needed for Personal UsePublishing your app does NOT require Google verification if:
- You have fewer than 100 users
- You’re using it for personal/internal purposes
Step 4: Create OAuth Credentials
- Go to APIs & Services → Credentials
- Click Create Credentials → OAuth client ID
- Select Web application
- Name it (e.g., “Notifuse SMTP”)
- Under Authorized redirect URIs, click Add URI
- Enter:
http://localhost - Click Create
- A dialog will show your Client ID and Client Secret - save both
Step 5: Get Authorization Code
Open this URL in your browser, replacingYOUR_CLIENT_ID with your actual Client ID:
scope=https://mail.google.com/- Required for SMTP accessaccess_type=offline- Required to receive a refresh tokenprompt=consent- Forces Google to return a new refresh token
code value (everything between code= and &scope).
Step 6: Exchange Code for Refresh Token
Run this curl command in your terminal, replacing the placeholders:Step 7: Configure in Notifuse
Refresh Token Lifetime
With a published app, your refresh token will remain valid indefinitely, unless:If your token becomes invalid, repeat Steps 5-6 to generate a new refresh token.
Senders List
Add sender addresses that can be used with this SMTP integration:
Click Add Sender to add multiple sender addresses.
Usage Types
Configure how this SMTP integration will be used:
You can enable both options to use the same SMTP configuration for all email types.
Limitations
SMTP integrations have the following limitations:- No delivery webhooks: SMTP does not provide real-time delivery status updates
- No bounce notifications: No automatic notifications when emails bounce
- No complaint tracking: No webhooks for spam reports or abuse complaints
Notifuse automatically adds open and click tracking to all emails, regardless of the email provider used.
Common SMTP Servers
Gmail and Microsoft 365 have deprecated basic authentication. You must use OAuth2 for these providers.
Troubleshooting
Microsoft 365: “535 5.7.3 Authentication unsuccessful”
This error usually means:- Service principal not registered in Exchange Online (Step 4)
- Mailbox permissions not granted (Step 5)
- Username doesn’t match the permitted mailbox
Gmail: “unauthorized_client”
This error means:- Refresh token was generated with different Client ID/Secret
- Regenerate the refresh token using your current credentials
Gmail: “invalid_grant”
This error means:- Refresh token has expired (7 days in Testing mode)
- User changed their Google password
- Token was revoked or exceeded the 50-token limit
