I'm fairly sure this should be done in PHP with MySQL back-end for speed, but am open to suggestions. I need a simple script / solution that will be hosted on a unix/linux box that will allow me to click a button, upload a .csv file of email addresses (list A), click another button to upload a second .csv file of email addresses (list B), click a third button and have a third list created (list C) that will be List A minus the addresses in list B (the suppression list). The output, list C, should allow me to choose a directory path and set a file name to save it to the server where I can find it. The purpose of this script is to take an email "suppression list", that is, a list in .csv format of addresses of people who have specifically asked to not receive email, and remove those addresses from the uploaded list, to create a clean list of addresses in .csv format. I would also like the ability to address the issue of having entire domains in the suppression list. For example, if the suppression file had at [url removed, login to view] in it, all records ending in at [url removed, login to view], including subdomain addresses like at [url removed, login to view] would be purged when run against the suppression list. My guess is that since we're dealing with what essentially amounts to records, that a PHP script with a MySQL backend would be fastest, but am open to suggestions. My sense is that the solution should be able to handle lists of at least 100,000 address records, but perhaps as many as 5 million, so it should be scalable. In summary, the script needs to take File A, compare it to File B and create File C that can then be sent via FTP. This is a small project but we may have a need to scale it in the near future and will do so by awarding a larger project for that job.
Linux/Unix, PHP, MySQL