Content-type: text/html; charset=iso-8859-1
Эта строка появляется в Thunderbird, с пробелами в начале и всем прочим? Тогда вы неправильно отправляете заголовок ... Либо вы пытаетесь поместить заголовки в тело, либо один из ваших заголовков, предшествующих Content-Type, имеет ложную новую строку в значении, заканчивая строки заголовка рано и делая ваш Строка Content-Type не считается заголовком. Давайте посмотрим ваш код отправки.
Но ... для письма с подтверждением регистрации нет смысла использовать HTML. Вы получите лучшую совместимость и упростите процесс отправки, просто поместив нужный URL-адрес в текстовое электронное письмо. Все современные почтовые клиенты будут выбирать URL, чтобы сделать его кликабельным в любом случае.
ETA: трудно сказать, так как отправленный вами код отправки не соответствует примеру сообщения. Также может помочь увидеть полный источник сообщения с заголовками (который можно просмотреть в Thunderbird или сохранить как .eml).
Однако, вероятно, что-то идет не так с символами новой строки. Согласно примечанию на справочной странице mail , вам может понадобиться использовать «\ n» вместо «\ r \ n», если почтовый ящик на вашем сервере дерьмовый и сломан?