Campaign Lifecycle
1
Creation
Campaign is created and saved with email content and SMTP settings
2
Target Addition
Target list is added or imported with email addresses and metadata
3
Testing
Test emails are sent to verify deliverability and appearance
4
Launch or Schedule
Campaign is either sent immediately or scheduled for future start
5
Sending
Emails are sent sequentially with configured delay between sends
6
Monitoring
Events are tracked in real-time as targets interact with emails
7
Completion
Campaign ends when all targets have been sent emails or campaign is manually stopped
Viewing Campaigns
Campaign List
Navigate to the admin interface:- Campaign name (clickable to access campaign details)
- SMTP server
- SMTP From address
- Phishing link
- ID parameter
- Email delay (seconds)
- Scheduled start time (if scheduled)
- Start timestamp (when campaign began sending)
- End timestamp (when campaign completed)
- Phishmarket ID (if created from remote template)
- Sending status (1 = currently sending, 0 = not sending)
Campaign Details
Click any campaign name to access:- Target management
- Campaign tracking
- Scheduling controls
- Campaign settings
Creating Campaigns
Campaigns are created through the email capture workflow. See Usage Guide for detailed instructions. Quick Summary:- Navigate to “Create Campaign”
- Capture email from Outlook or load from template
- Edit email content and configure SMTP settings
- Click “Save as Campaign”
- Enter unique campaign name
- Campaign is saved and appears in campaign list
Campaign Configuration
Email Content
Storage: Complete raw MIME message stored in theemail column
Includes:
- All headers (SMTP and email headers)
- Email body (HTML and/or plain text)
- Embedded images and attachments
- Content-Type declarations
- Character encoding
SMTP Configuration
mail_server (string)- Hostname or IP of target mail server or relay
- Examples:
mx.target-domain.com,smtp.sendgrid.net
- Envelope sender address
- Must be from a domain you control
- Used for SPF/DKIM alignment
- 0: Port 25, no TLS (direct delivery)
- 1: Port 465, TLS (authenticated relay)
- SMTP authentication username (optional)
- Required for authenticated relays
- SMTP authentication password (optional)
- Stored in plaintext in database
- 0: No DKIM signing
- 1: Sign emails with DKIM private key
Campaign Parameters
phishing_link (string)- Base URL for phishing/payload delivery
- Example:
https://payload-domain.com
- URL parameter name for target tracking
- Example:
idresults in?id=abc123
- Seconds between each email send
- Default: 30 seconds
- Minimum: 1 second
- Unix timestamp (milliseconds) for scheduled start
- Null if not scheduled
- Unix timestamp (milliseconds) when campaign started sending
- Null if not yet started
- Unix timestamp (milliseconds) when campaign completed
- Null if not yet completed
- 0: Campaign not currently sending
- 1: Campaign currently sending or scheduled
- Phishmarket template ID if campaign was created from remote template
- 0 if created locally
Editing Campaigns
To modify an existing campaign:1
Access Campaign
From admin interface, click campaign name
2
Navigate to Edit
The campaign details page provides access to edit functionality
3
Modify Settings
Change SMTP settings, email content, phishing link, or delay
4
Save Changes
Changes are immediately saved to the database
What Can Be Edited
Allowed:- Email content (MIME message)
- SMTP settings (server, auth, DKIM)
- Phishing link and ID parameter
- Email delay
- Campaign name (primary identifier)
- Historical timestamps (start, end)
- Sending status (managed automatically)
Launching Campaigns
Prerequisites
Before launching:Send Campaign Immediately
1
Access Campaign
Click campaign name from admin interface
2
Verify Targets
Confirm target list is populated and correct
3
Click Send Campaign
The “Send Campaign” button starts immediate sending
4
Monitor Progress
Campaign tracking page shows real-time email sending and events
- Emails sent sequentially with configured delay
- First target is sent immediately upon clicking “Send Campaign”
- Subsequent targets sent after delay interval
- Campaign continues until all targets marked as “phished”
EMAIL_SENTevents logged for each successful sendERRORevents logged for failures
Schedule Campaign
To start a campaign at a specific future time:1
Access Campaign Tracking
Navigate to campaign tracking page
2
Set Schedule Time
Modify the datetime input field with desired start time
3
Click Schedule Campaign
The “Schedule Campaign” button schedules the campaign
4
Confirmation
Campaign status shows as scheduled
5
Automatic Start
Campaign automatically begins at scheduled time
- All times are in the server’s timezone (configured in
config.json) - Current server time is displayed when refreshing the page
- Update the time input to the desired start time before clicking “Schedule Campaign”
- Cannot schedule a campaign that is already sending
- Campaign waits until scheduled time
- At scheduled time, first email is sent
- Subsequent emails sent with configured delay
- Can be cancelled before start time
Stopping Campaigns
Cancel Active Campaign
To stop a campaign that is currently sending:1
Access Campaign Tracking
Navigate to the campaign tracking page
2
Click Cancel Campaign
The “Cancel Campaign” button stops email sending
3
Immediate Stop
No additional emails will be sent after cancel
4
Status Update
Campaign status changes to not sending (is_sending = 0)
- Current email being sent completes
- No additional emails are queued
- Targets marked as “phished=1” remain marked
- Targets marked as “phished=0” can be retried later
- End timestamp is set
- Can be restarted by clicking “Send Campaign” again
Cancel Scheduled Campaign
Scheduled campaigns can be cancelled before they start:1
Access Campaign Tracking
Navigate to the campaign tracking page
2
Click Cancel Campaign
Cancels the scheduled start
3
Status Update
Scheduled start time cleared, campaign not sending
Campaign Statistics
Database Queries
Get campaign statistics directly from the database: Total Targets:Campaign Duration
Calculate campaign duration:Managing Multiple Campaigns
Campaign Naming Convention
Use clear, descriptive names: Good Examples:Q4_2023_Office365_PhishRedTeam_VPN_Campaign_Dec2023Awareness_Training_Test_1
testcampaign1asdf
Running Multiple Campaigns
Phishmonger supports multiple concurrent campaigns: Considerations:- Each campaign runs independently
- Shared SMTP server may have rate limits
- Monitor total sending rate across all campaigns
- Database handles concurrent writes
- WebSocket events are campaign-specific
- Use different SMTP servers for concurrent campaigns when possible
- Stagger campaign start times to avoid simultaneous bursts
- Monitor server load and database performance
- Keep campaign delays reasonable (30+ seconds)
Campaign Templates
Campaigns can be used as templates for future campaigns by duplicating and modifying:1
Export Campaign Email
Query database to extract email content
2
Create New Campaign
Use email capture or template workflow
3
Load Previous Content
Paste email content or use template system
4
Modify as Needed
Update content, SMTP settings, and targets
5
Save with New Name
Save as a distinct campaign
Deleting Campaigns
To remove a campaign completely:1
Stop Campaign
If campaign is sending, cancel it first
2
Access Campaign
Navigate to campaign details
3
Delete Campaign
Use delete functionality (or API DELETE /delete_campaign)
4
Confirmation
Campaign, associated targets, and events are removed
- Campaign record
- All targets for the campaign
- All events for the campaign
- Templates (unaffected)
- Other campaigns (unaffected)
Campaign Best Practices
Before Launch
Verify Deliverability:- Send test to your own inbox
- Send test to mail-tester.com (aim for 8/10 or higher)
- Test rendering on multiple clients (Outlook, Gmail, mobile)
- Verify all links work correctly
- Remove duplicates
- Verify email format is correct
- Check for internal/team email addresses
- Confirm authorization scope includes all targets
- Launch during business hours for better engagement
- Avoid Monday mornings and Friday afternoons
- Consider target organization’s timezone
- Allow enough time to monitor campaign actively
During Campaign
Active Monitoring:- Keep campaign tracking page open
- Watch for ERROR events
- Monitor overall sending rate
- Check for unexpected patterns
- 450/451 errors: Greylist or rate limit - slow down
- 550 errors: Permanent failure - check address validity
- Connection refused: Mail server down or blocked
- Authentication failures: Verify SMTP credentials
- Pause campaign if suspicious activity detected
- Stop campaign if technical issues occur
- Adjust delay if rate limiting occurs
After Campaign
Reporting:- Export events for analysis
- Calculate success metrics (delivery rate, CTR)
- Document lessons learned
- Archive campaign data if needed
- Stop campaign after completion
- Export data before deletion
- Delete campaign when no longer needed
- Clear old database entries
Campaign Metrics
Key Performance Indicators
Delivery Rate:Reporting
Generate campaign report:Troubleshooting Campaigns
Campaign Won’t Start
Symptoms: Clicking “Send Campaign” has no effect Possible Causes:- No targets added to campaign
- All targets already marked as phished
- Campaign is already sending (is_sending = 1)
Campaign Stuck Sending
Symptoms: Campaign shows as sending but no emails are going out Possible Causes:- Node.js process crashed
- Database lock
- SMTP connection hung
- Restart Node.js server
- Check server logs for errors
- Reset is_sending flag in database
Emails Not Delivering
Symptoms: ERROR events logged for all or most targets Common Error Codes:- 550 5.7.1: SPF or authentication failure
- 550 5.1.1: User unknown (invalid email address)
- 554: Message rejected (content filtering)
- Connection refused: Port 25 blocked or mail server down
- Verify DNS records (SPF, DKIM, DMARC)
- Check target email addresses are valid
- Review email content for spam triggers
- Verify SMTP server is reachable
- Try authenticated relay instead of direct delivery