Guides, answers and troubleshooting

Help Center

Help Center

Documentation & Troubleshooting

Answers to the 50 most common questions and errors — search below or jump to a topic. Most issues are solved here in under a minute.

Account & Billing

I can't log in — “Invalid email address and/or password”
Double-check that you are using the email address you registered with, then use the Forgot password link on the login page to set a new password. After several failed attempts your account is temporarily locked for security — wait 15 minutes and try again. If you still can't get in, open a support ticket from the Contact page.
The password reset email never arrives
First check your spam/junk folder and any “Promotions” tabs. Reset emails can take up to 10 minutes. If nothing arrives, your mailbox provider may be blocking automated mail, or your account may be registered under a different address — open a support ticket and we'll verify your account manually.
“Your account is pending approval” after registration
To protect the deliverability of every customer, new accounts are manually reviewed before activation. This normally takes less than 24 hours. You'll receive an email as soon as your account is approved. If it takes longer, open a support ticket with the email you registered with.
“Your account has been disabled” message at login
Accounts are disabled when our systems detect a violation of the Acceptable Use Policy — most often unusually high bounce or spam-complaint rates. Open a support ticket including your account email and we'll review the case and explain the next steps.
How do I upgrade or downgrade my plan?
Log in to your account and go to Price plans. Choose the new plan and complete the payment — the new sending quotas apply immediately. Downgrades take effect at the start of the next billing period so you never lose time you've already paid for.
Where can I find my invoices and payment history?
All payments and downloadable invoices are available inside your account under Price plans → Orders. Every invoice is issued automatically at the moment of payment and can be downloaded as PDF at any time.
How do I change my account email address or password?
Go to Account → Profile after logging in. Changing the login email requires confirming the new address before it becomes active, so keep access to both mailboxes during the change.

Lists & Subscribers

My list import is stuck at “In progress”
Imports run in the background in batches, so large files can take a while — a 100k-row file typically needs 10–30 minutes. You can safely close the page; the import continues on the server. If it's still “In progress” after a few hours, the file probably has a formatting problem — re-export it as CSV (UTF-8) and try again, or open a ticket.
“Your file type is not allowed” when importing subscribers
The importer accepts CSV files. If you're working in Excel or Google Sheets, use Save as → CSV (UTF-8) — not .xlsx or .numbers. The first row must contain column headers and one of them must be EMAIL.
Fewer subscribers were imported than my file contains
That's normal: duplicates inside the file, addresses already on the list, syntactically invalid emails and globally suppressed addresses are all skipped automatically. The import summary shows exactly how many rows fell into each category.
Subscribers never receive the confirmation email (double opt-in)
Ask the subscriber to check their spam folder first. Confirmation emails are sent instantly, but some corporate filters delay or quarantine them. If this happens systematically on your list, consider switching the list to single opt-in in the list settings, or open a ticket so we can check the sending logs.
“This email address is blacklisted” when adding a subscriber
The address has previously hard-bounced or filed a spam complaint anywhere on our platform, so it sits on the global suppression list to protect your sender reputation. If you have proof the mailbox is valid and consented, open a support ticket and we can review and whitelist it.
My segment matches 0 subscribers
Check the segment's conditions: all AND conditions must be true at the same time, the custom fields you filter on must actually contain values, and date comparisons must use the same format as the stored data. Test by relaxing one condition at a time until results appear.
A contact unsubscribed but still receives my emails
Unsubscribes apply per list — if the contact exists on several of your lists they must be removed from each one. To block an address across your whole account, add it to your account-level suppression list.
How do I export my subscribers?
Open the list, go to Tools → Export and start a CSV export. Like imports, exports run in the background; you'll get a download link when the file is ready. Exports include all custom fields.

Campaigns & Sending

My campaign is stuck at “Pending sending”
Campaigns are picked up by the sending queue within a few minutes of their scheduled time — short waits are normal. If it stays pending for more than an hour, you have usually hit your plan's sending quota, or the campaign is scheduled in a different timezone than you expect. Check both; if neither applies, open a ticket.
Campaign shows “Processing” for a very long time
Large lists are sent in batches to protect your deliverability, so “Processing” can legitimately last a while. Verify the sent counter in the campaign stats keeps growing. Avoid editing a campaign while it's processing — pause it first.
My campaign was “Blocked” after I tried to send it
Automated content checks stopped the campaign — common causes are spam-trigger phrasing, link shorteners, or a linked domain with a bad reputation. Edit the campaign content, replace shortened links with full URLs and try again. If you believe it was blocked in error, open a ticket and we'll review it manually.
“You have reached your sending quota”
Every plan has hourly and monthly sending limits. Sending resumes automatically when the quota window resets. If you regularly hit the ceiling, upgrade to a higher plan from Price plans — the new quota applies immediately.
My scheduled campaign didn't go out at the exact minute
Two things affect launch time: the timezone selected in the campaign options (check it matches yours) and the queue interval — campaigns are picked up within a few minutes of the scheduled time, not the exact second.
The test email arrives but the real campaign doesn't reach inboxes
Test emails take a simplified path; real campaign mail carries tracking links and list headers, which spam filters weigh differently. Check the campaign stats (delivered vs bounced), verify your sending domain is fully authenticated (SPF/DKIM), and seed-test with a mailbox you control, checking the spam folder.
Open rate shows 0% even though people read my emails
Opens are measured with a tiny tracking image, so they can't be counted when recipients block images or when your template is plain-text only. Also verify open tracking is enabled in the campaign options. Click tracking is the more reliable engagement signal.
Personalization tags print literally, e.g. [FNAME]
The tag must exactly match a custom field that exists on the list the campaign targets — check the merge-tag spelling in the list's custom fields page. Use fallback syntax where available so empty fields render a default instead of a blank.
How do autoresponders / automated sequences work?
Autoresponders trigger relative to an event — for example “1 day after subscription” or “after a campaign open”. They are evaluated continuously by the platform, so new subscribers enter the sequence automatically. Make sure the autoresponder status is Active, otherwise it silently ignores new triggers.
Can I pause or stop a campaign that is already sending?
Yes — use the Pause action on the campaign. Messages already handed to the delivery queue in the current batch may still go out, but no new batches start. Resuming continues exactly where it stopped without re-sending.

Deliverability & Domains

My emails land in spam — what should I check first?
In order: 1) your sending domain is verified with valid SPF and DKIM records, 2) your list is clean and permission-based (no purchased lists), 3) your content avoids spam-trigger patterns (ALL CAPS, misleading subjects, link shorteners), 4) you're warming up gradually rather than blasting a cold domain. Fixing authentication alone resolves the majority of cases.
“SPF record not found” or “SPF invalid” warning
Add the TXT record shown on the sending-domain verification page to your domain's DNS. Important: a domain may only have one SPF record — if one already exists, merge our include: into it instead of adding a second record. DNS changes can take up to a few hours to propagate.
“DKIM signature invalid” after adding the record
The DKIM value is a long string that some DNS dashboards silently wrap or truncate. Re-paste it as a single unbroken string (or use the multi-part quoted format your DNS provider documents), wait for propagation, then re-run verification.
What DMARC policy should I use?
Start with p=none plus an aggregate-report address (rua=) so you can watch who sends on behalf of your domain without blocking anything. Once SPF and DKIM are aligned and reports look clean for a couple of weeks, tighten to p=quarantine and eventually p=reject.
What do bounce codes like “550 5.7.1” mean?
Codes starting with 5 are permanent (hard) failures — the receiving server refused the message, e.g. unknown mailbox or policy rejection. Codes starting with 4 are temporary (soft) failures — full mailbox or greylisting — and are retried automatically. The bounce log on each campaign shows the exact server response.
What happens to hard vs soft bounces?
A hard bounce (permanent error) removes the subscriber from active sending immediately to protect your reputation. Soft bounces are retried; after several consecutive soft bounces the address is treated as a hard bounce. You don't need to clean bounces manually — it's automatic.
“Your sending domain is not verified” error when sending
The domain in your From address must be verified under Sending domains — add the DNS records shown there and click verify. Until then, campaigns from that domain won't be accepted.
What happens when someone marks my email as spam?
Feedback loops with major mailbox providers report the complaint back to us and the subscriber is automatically suppressed from future sending. Keep complaint rates below 0.1% — sustained higher rates trigger a review of the account, as they damage deliverability for everyone on the platform.
My tracking/link domain shows an SSL certificate warning
Custom tracking domains need a CNAME record plus an SSL certificate that is provisioned automatically after the DNS is detected — this can take a few hours. If the warning persists beyond a day, open a support ticket and we'll re-issue the certificate.

Templates & Editor

The drag-and-drop builder won't save my changes
This is almost always a session or browser issue: log out and back in, disable aggressive ad/script blockers for the app, and avoid editing the same template in two tabs at once. Before big edits, copy your HTML from the code view as a backup.
Images don't show in my sent emails
Images must be uploaded to the template's media library (or hosted on a public HTTPS URL) — local file paths from your computer can't work in email. Also remember many mail clients block images until the reader clicks “show images”; always set descriptive alt text.
My template looks broken in Outlook
Desktop Outlook renders email with the Microsoft Word engine, which ignores much of modern CSS. Stick to table-based layouts, inline styles, and avoid CSS flexbox/grid and background images. Send yourself a test to an Outlook address before every important campaign.
My custom HTML gets modified or stripped when I paste it
The editor sanitizes elements that are unsafe or non-functional in email — <script>, <form>, <iframe> and event attributes are removed. Paste into the dedicated code view rather than the visual canvas to keep your markup intact.
Custom fonts don't display in my emails
Only a handful of mail clients support web fonts. Always declare a fallback stack, e.g. font-family: 'Brand Font', Helvetica, Arial, sans-serif; — clients that can't load your font degrade gracefully instead of substituting something unexpected.
My email looks wrong in dark mode
Dark-mode clients invert or recolor backgrounds unpredictably. Use transparent PNG logos (not white-boxed JPGs), avoid hard-coded pure black text on pure white, and test in at least one dark-mode client — small contrast tweaks fix most issues.

Forms, Pages & Automation

My embedded subscription form doesn't submit
Re-copy the latest embed code from the list's Forms page — old snippets can point to outdated endpoints. All fields marked required on the list must exist in the form, otherwise submissions are rejected. Check the browser console: a red CORS or 404 line tells you exactly which of the two it is.
Single or double opt-in — which should I use?
Double opt-in adds a confirmation click, which lowers signup volume slightly but gives you a cleaner list, better engagement metrics, and documented proof of consent (important for GDPR). We recommend double opt-in for most lists; use single opt-in only when signups happen in an already-verified context.
The welcome email doesn't send after signup
Check three things: the autoresponder is Active, its trigger is “after subscription” with the right delay, and — on double opt-in lists — remember it only fires after the subscriber confirms, not at the moment of signup.
My webhooks aren't firing
The endpoint must be publicly reachable over HTTPS and answer with a 2xx status within a few seconds — redirects and self-signed certificates count as failures. Failed deliveries are retried a limited number of times; check your endpoint's access log to see whether the calls arrive and how it responds.
Can I redirect subscribers to my own thank-you page?
Yes. In the list's Pages settings you can replace each hosted page (subscribe confirmation, unsubscribe, etc.) with a redirect to any URL on your own site.

API & Integrations

The API returns 401 Unauthorized / “Invalid API key”
Generate a fresh key pair under Account → API keys and send it exactly as the API documentation shows (header names are case-sensitive in some HTTP clients). Keys are tied to your account — if the account is pending approval or disabled, all keys return 401.
“Too many requests” — API rate limits
The API throttles bursts per key. Implement exponential backoff on 429 responses and use the bulk endpoints (e.g. batch subscriber import) instead of looping single calls. If your integration legitimately needs higher limits, open a support ticket describing the use case.
The subscribe API call succeeds but the subscriber doesn't appear
Verify you used the correct list UID (not its name). On double opt-in lists new API subscribers are created with unconfirmed status and only become visible in the default view after confirming — switch the status filter to “all” to see them.
How do I connect my website or WordPress to MailFlow?
Three options, in increasing order of flexibility: embed a hosted subscription form (no code), use any form plugin that can POST to a custom endpoint, or integrate the REST API directly with the key from Account → API keys. The API covers subscribers, lists, campaigns and transactional sending.
Can I send email from my own application through MailFlow (SMTP relay)?
Yes, on eligible plans — you get SMTP credentials to relay transactional mail through our delivery infrastructure on port 587 with TLS. Relay traffic is subject to the same anti-spam rules as campaigns. Open a support ticket if you don't see relay credentials in your account.
#Support

Didn't find your answer?

Our support team is one click away — open a ticket and we'll get back to you by email.

Open a Support Ticket