actinity/sanitiser

A simple email sanitiser to clean up common input errors

1.2.1 2024-11-04 16:32 UTC

This package is auto-updated.

Last update: 2024-12-04 16:42:30 UTC


README

A simple class to fix common input errors in Email addresses.

This library takes a string and tries to turn it into a 'clean' email address without any extraneous junk that would cause it to fail.

Why would I use it?

This library was written to simplify importing email addresses from files and other systems where proper sanitisation hadn't previously been applied. Lists of users to add to a system supplied in Excel, email addresses collected from conferences etc. The intention is to be 'good enough' to fix 99% of the common errors you see in that kind of data, leaving you free to only look at the ones that definitely failed.

What does it do?

Catch and 'fix' a variety of common issues like:

  • Trailing semi-colons, commas etc
  • Leading or trailing whitespace (including zero-widths)
  • Addresses wrapped in quotes or primes
  • Addresses wrapped in angle brackets (discarding anything else like a name)
  • Rejects obviously broken addresses like test, test@, test@. etc.

What it doesn't do

  • Verify that the email address/domain/mail server exists or will work, obviously. The only way to test an email address is to actually send to it. Anyone who tells you otherwise is selling something.
  • Work for every possible RFC compliant email - there are plenty of things you're technically allowed to do that you're not going to come across in the real world. e.g. me@localhost
  • Guarantee that it matches the user's intent (e.g. if there were multiple email addresses listed, it will only pick the first one. Is that correct? ¯\(ツ)/¯)

How to use it.

use Actinity\Sanitiser\Sanitiser;

$address = Sanitiser::clean($address)

clean() returns either a clean address, or false if it looks hopelessly broken.