Сначала вопрос такого плана - на клиенте нет проверки формы пред отправкой и поля обязательные не имеют такого признака, то есть и нативной проверки тоже нет. В таком случае как нужно понимать это:
// Нас не интересуют анонимки
if (empty($userEmail)) {
die('Отсутствует или неверен адрес почты');
и для других полей? Отчего такая уверенность, что это аноним, а не просто человеческий фактор - забыл, не усмотрел пользователь перед отправкой?