Skip to content

Our contact form mails don't deliver, log says 'header injection'

Header injection is an attack where input adds extra headers. Mail servers block it, including accidental whitespace in your script.

Try this first

  1. 1Check your form script: strip \r and \n from any input that goes into headers
  2. 2Use a mail library (PHPMailer, Symfony Mailer) rather than building headers by hand
  3. 3Read the mail server error log, look for 'invalid header'
  4. 4Test with a payload containing newlines to confirm the filter works

When to bring us in

On old legacy forms: replace with a modern library, faster than fixing.

See also

None of the above fits?

Describe your situation below. We pass your input plus the steps you already saw to our AI and return tailored next-step advice. If it's too risky to DIY, we'll say so.

Who are you?

For the AI question we need your email and company, so we can follow up if the AI gets stuck, and to prevent abuse.

Limited to 2 questions per hour and 5 per day, kept lean so the AI stays useful. For more, contacting us directly works better for you and us.

Or skip the DIY entirely

Our Managed IT clients do not look these things up. One point of contact, a fixed monthly price, resolved within working hours.