Skip to content

Verify your Mailtrap contacts before you send

Integration Sending and campaigns

Mailtrap email verification in three steps: export your contacts, verify the file in PricklyMails, then suppress the addresses that cannot receive mail.

There is no native Mailtrap connector: you export the list, PricklyMails verifies it, and you bring the result back into Mailtrap. New addresses can go through the API before they ever reach Mailtrap.

Verify for free

Step by step

Clean your list in three steps

  1. In Mailtrap

    Export your contacts from Mailtrap

    1. In the Marketing section, go to Contacts then All contacts.
    2. Tick the contacts to export, or click Select All.
    3. Click More Actions then Export.
    4. Click Confirm Export.
    5. Open the email Mailtrap sends you and click Download Contacts Export: the link expires after a day.

    Tip

    To verify part of your contacts only, such as one list or the subscribed contacts, add a filter on Lists or Subscription Status and click Search before selecting them. The file holds every contact field and list membership; PricklyMails only needs the addresses, so keep the email column alone in a spreadsheet before moving on.

    Note

    Select All selects the contacts on the current page. To export a whole list, or every subscribed contact, in one file, Mailtrap's API has a contact export that filters by list and by subscription status.

  2. In PricklyMails

    Verify the file in PricklyMails

    1. In the dashboard, open Batches and click New batch.
    2. Drop the file you exported from Mailtrap: a .csv or .txt with one address per line, no header row and no quotes. A header row would count as an address in the estimate, though it is never billed, and a quoted address would not be verified: the report lists both as malformed. You can also paste the list.
    3. The dashboard counts the addresses and shows the estimated cost in tokens before anything is sent, then you click Submit batch. A batch holds at least 20 addresses, and your plan sets the largest list it can hold.
    4. The list is verified in the background. Once the batch is done, open it and click Download report: you get a CSV with a row for each address of your file, giving its verdict, its reason, its score and its recommendation, with the dashboard's labels.

    Note

    Download the report from the browser that sent the list: that browser is what keeps the addresses, for the 16 most recent batches at most. Our servers, in Germany, only keep a one-way fingerprint of each one.
    What the report says

    Every address gets a recommendation: the action to take. The report writes it with the dashboard's label; the API returns a short form of it.

    Send
    The address is valid, or hosted by a large provider that accepts every address without confirming any. Send as usual.
    Review
    A domain that accepts any address (catch-all), a generic address such as contact@, a full mailbox, or a server that never answered, or refused to. Take a look before you send.
    Remove
    The address does not exist, its domain cannot receive mail, or it is disposable, mistyped or malformed. Take it out.

    Note

    A malformed address is never verified: the batch counts it under "Malformed addresses", and the report still lists it, with the verdict "Invalid", the reason "Malformed address" and the recommendation "Remove", so you take it out of Mailtrap with the others. A duplicate, counted under "Duplicates removed", appears only once.

    Behind each recommendation sit a verdict (Valid, Risky, Invalid or Not verifiable), a reason and a score from 0 to 100, each in its own column of the report. When a server never answers, the address comes back "Not verifiable" and the checks that got no answer are refunded.

  3. In Mailtrap

    Bring the result back into Mailtrap

    Open the report in a spreadsheet and filter the Recommendation column.

    Remove

    They go on the suppression list, and Mailtrap sends them no more campaigns.

    Mailtrap adds an address to that list itself once it hard bounces; importing yours first spares your campaigns those bounces.

    1. Open Suppressions, in the menu on the left.
    2. Click Import Suppressions, at the top right of the screen.
    3. Select Upload CSV.
    4. Save the addresses to remove in a CSV file based on the CSV template Mailtrap offers on that screen.
    5. Under Add to stream, choose Promotional (Bulk stream and Campaigns).
    6. Choose the domain your campaigns are sent from.
    7. Click Browse files, or drag and drop the file into the upload area.
    8. Click Add To Suppressions.
    Review

    They deserve a look before your next campaign. To find them in Mailtrap, create a list for them with Create List under Contacts then Lists, then find each one with the search bar in All contacts, tick it, and add it to the list with Add To Lists.

    Send

    They stay in your contacts: nothing to do.

    Warning

    A suppression covers the stream and the domain you chose. On the promotional stream, the address still gets your transactional emails, while Any stream stops both. An address suppressed for one domain can still be emailed from your other verified domains.

    Tip

    Only a few addresses? Select Insert manually instead of Upload CSV, choose the stream and the domain, paste the addresses, one per line and up to 1,000 per domain, then click Add To Suppressions.

Verify each address before it reaches Mailtrap

Does your signup form or backend add contacts to Mailtrap through its API, with the Create a new Contact (opens in a new tab) call? Ask PricklyMails first. If the recommendation is remove, don't create the contact.

One call starts the verification and already flags a likely typo, a second one reads the verdict. Depending on your plan, a signed webhook can also send it to you as soon as it's ready.

Request
curl -s https://api.pricklymails.com/api/verify \
  -H "Authorization: Bearer pm_live_9f3a..." \
  -H "Content-Type: application/json" \
  -d '{ "email": "ana.silva@gmail.con" }' \
  | jq '{job_uuid, suggestion}'
Response
{
  "job_uuid": "8f1c2a9e-4b7d-4e2a-9c61-3d5f0b7a2e18",
  "suggestion": "ana.silva@gmail.com"
}
Request
curl -s https://api.pricklymails.com/api/verify/$JOB_UUID \
  -H "Authorization: Bearer pm_live_9f3a..." \
  | jq '.verifications[0] | {status, reason, score, recommendation}'
Response
{
  "status": "invalid",
  "reason": "no_mx_records",
  "score": 0,
  "recommendation": "remove"
}
Read the API docs

Frequently asked questions

Mailtrap already suppresses bounced addresses, so why verify first?

Mailtrap adds an address to its suppression list once it bounces for good, for instance because the address is invalid or does not exist: by then the email has gone out and the bounce has counted. On Mailtrap's sending stats dashboard, a bounce rate from 2 to 5% shows as a warning and one above 5% as critical, and its help lists high bounce rates among the reasons an account can be suspended or banned. Its import guide also asks you to remove invalid emails from a list before you upload it. Verifying before you send takes those addresses out before they bounce.

Should I suppress, unsubscribe or delete the addresses to remove?

It depends on what should stay in your account. An address on the suppression list gets nothing more on the stream and the domain you chose. Unsubscribing a contact excludes it from every campaign but keeps its data, and Mailtrap's FAQ says unsubscribed contacts count toward your plan limits: Email Marketing plans are priced by the contacts you store. Deleting a contact is permanent, removes it from every list and frees its place in your quota. Mailtrap's own tips suggest removing bounced and inactive contacts every month.

Can verification make a purchased list safe to send from Mailtrap?

No. Mailtrap's FAQ says sending to purchased lists violates its Terms of Service and can lead to account suspension, and its contact import asks you to confirm you have explicit consent from every contact before it goes through. Verification does not replace that consent. It removes what a list gathered with consent still collects over time: addresses that no longer receive mail, and disposable ones.

SourceMailtrap's official help center

Does PricklyMails connect to Mailtrap directly?

No, there is no native connector: you go through a file export, as above. You can also call the PricklyMails API from your own code before an address reaches Mailtrap.

These trademarks belong to their respective owners. Naming them implies no partnership.

Check your list before your next send.

1,000 tokens free when you sign up, no credit card. After that, you only pay for answers.