Xmailer
  • Xmailer: The Ultimate Email Marketing Platform
  • CONTACT LIST MANAGEMENT
    • Create a contact list
    • Resubscribe after an unsubscribe
    • List X-Ray
    • View or search your contacts
    • Contact Tags Manager
    • Export your contact list
    • Uploading a suppression list
    • Large suppression files
    • Exclusion Lists
    • GDPR Delete & Export
  • SEGMENTING
    • What you can do with segments
    • Create a segment
    • Designing your segment
    • Tag contacts in a segment
    • Export a Segment's Contacts
    • A/B test using segments
  • BROADCAST
    • What you can do with broadcasts
    • Create a Broadcast
    • Broadcast Settings
    • Choosing your email composer
    • Augment your subject line with a preheader
    • Adding your recipients
    • Schedule your Broadcast
    • Resend to non-openers automation
    • Broadcast Reporting
    • Duplicate a broadcast
    • Tag contacts who Open your broadcast
    • Resume an incomplete broadcast
    • Export Broadcast Openers & Unsubscribes
    • Cancel a broadcast
    • Cancel a broadcast funnel trigger
    • Revise tagging and funnel triggers for sent broadcasts
  • USING THE DRAG & DROP EMAIL COMPOSER
    • The Basics
      • Content Row Properties
      • Designing your email - Using Columns
      • Footer
      • Social Media Component
    • Working with multimedia
      • Adding video to your page
      • Using the image editor
      • Using dynamic images for countdown timers and personalized content
      • Search for free, high-quality stock photos in Xmailer
      • Editing Image Properties
      • Adding GIF animations & animated stickers with GIPHY
      • Adding video to your email
      • Using the File Manager
      • How to use external images in your design
    • Working with content blocks
      • Table Content Block
      • Using Internal Links in Pages
      • Working with paragraph and list content blocks
      • Using dividers and spacers
      • Letter and Paragraph spacing
      • Working with titles
      • Working with menus in Xmailer
      • Working with icons
      • Working with custom HTML
    • Settings, rows, & columns
      • Dark Mode Preview
      • Designing with Workspace Styles
      • Designing with Saved Rows
      • Mobile design mode
      • Co-editing
      • Column management
      • Configuring design settings
      • Settings, Rows, and Content: How do they work?
      • Adding a background image to your designs
      • How do I change the properties of a row?
      • Mobile Optimization Options
      • How do I select a row vs. content?
      • Undo, redo & history
      • Working with padding
      • Working with borders
      • Saving your designs in Xmailer
      • Locking content to prevent editing
  • FUNNELS
    • What you can do with funnels
    • Create a funnel
    • Choosing your funnel type
    • From Name & From Email - editing
    • Activating your funnel
    • Trigger an email funnel from a broadcast
    • Tag contacts who open your funnel messages
    • Choosing your email composer
    • Page Augment your subject line with a preheader
    • Design your automated email sequence
    • Contact Suppression and Exclusion
    • Adding a funnel to an opt-in subscriber form
  • SUBSCRIBER OPT-IN FORMS
    • What you can do with forms
    • Create an opt-in form
    • Sending to double opt-in contacts
    • Choosing your form type: floating bars, lightboxes,inline naked embedded, slide outs
    • Exit intent and display rules
    • Adding email and name input boxes to your form
    • Setting the size of your form
    • Configuring how your form displays on mobile devices
    • Configuring your mobile width
    • Add a close window X to your form
    • Adding a "No" button that closes your form
    • Tag subscribers who opt-in to your form
    • Adding "no thanks" text which closes your form
    • View your form conversion rate
    • Connect an existing form to your account
    • Adding your form to your website
    • Add opt-in subscribers to an automated email sequence
Powered by GitBook
On this page
  1. CONTACT LIST MANAGEMENT

Large suppression files

How to handle massive suppression files appropriately

We recommend against uploading unnecessarily large suppression files directly into your platform.

Many advertisers now have suppression files that have grown to 1GB, 2GB, or even larger. The outcome of uploading files this large is unpredictable and contingent on many factors including the robustness of your hardware.

Instead, we recommend running a script or tool outside of the platform.

Use a tool that can output a file of only the matches between your contact list and the suppression file, and then upload that output file as a suppression list instead.

This is the type of task the free version of ChatGPT 3.5 is perfectly suited for, as shown below.

Here's the prompt I used on the free version of ChatGPT to generate a script that runs on my macbook pro that will process a large suppression file in md5sum format:

I need to create a python script that can run on osx which takes a plain text file and converts each line to an md5sum, then compares each newly md5sumed line of that file to each line of a second plain text file which already consists of md5sums, I then need the matching lines from the first file to be saved to a file in the lines original format before they were converted to md5 for the match. The pre-existing md5sums file is 812MB and over 23 million lines, so this script needs to handle large file sizes while completing quickly

import hashlib import sys

def main(): # get the filenames from the command line arguments file1 = sys.argv[1] file2 = sys.argv[2] output_file = "matching_lines.txt"

import hashlib
import sys

def main():
    # get the filenames from the command line arguments
    file1 = sys.argv[1]
    file2 = sys.argv[2]
    output_file = "matching_lines.txt"

    # read the md5sums from file2 and store them in a set
    md5sums = set()
    with open(file2, "r") as f:
        for line in f:
            md5sums.add(line.strip())

    # loop over each line in file1 and compare its md5sum to the md5sums in the set
    with open(file1, "r") as f, open(output_file, "w") as out:
        for line in f:
            md5 = hashlib.md5(line.encode()).hexdigest()
            if md5 in md5sums:
                out.write(line)

if __name__ == "__main__":
    main()

The above script was tested on millions of records, completed in a few seconds, and produced accurate output

Here's another example one liner with AWK in macOS terminal that can process two files of email addresses in regular plain unhashed format:

To export multiple contact lists together as one file to make this process efficient, add them to a segment and export the segment instead

PreviousUploading a suppression listNextExclusion Lists

Last updated 1 year ago

If you need any help with this topic, please

contact us