Во первых - отсутствует открывающий тег формы, в котором должно быть прописано куда отправляются данные, то есть какой файл будет их принимать, ну и метод отправки.
Во вторых - если это html файл - весьма вероятно что в нем php код работать не будет, по умолчанию файлы html не обрабатываются интерпретатором, а выводятся "как есть", то есть все увидят ваш кусок кода как текст.
Ну и так, по мелочам:
- mail() не гарантирует отправку емэйла, только передает сообщение локальному smtp серверу, что будет дальше с сообщением абсолютно неизвестно. Для отправки почты есть более надежные скрипты, например phpMailer, нормально обрабатывающие все ошибки и способные работать с внешними smtp.
- зачем админскую почту получать из формы - загадка, просто пропишите ее в скрипте как переменную или константу, светить ее всем подряд совершенно не обязательно
-
$method = $_SERVER['REQUEST_METHOD']; ... if ( $method === 'POST' ) {...
зачем это переопределение из пустого в порожнее? Просто трата памяти.
-
else if ( $method === 'GET' ) {...
тоже не сильно понятно зачем. Если не пост, то мало вероятно что метод будет delete или update, совершенно ненужная проверка, тем более что отправлять крупный массив данных методом гет (например из поля комментария) - плохая идея. Кроме того, если я просто открыл страничку - это тоже метод гет, но ваших переменных там не будет, просто в лог посыпятся варнинги об отсутствии переменных.
- Код проверки переменных - отдельная грустная песня. Кроме того что есть filter_input, сама идея проверять переменные в цикле хреновая. Их у вас 4 штуки, все с разными требованиями, как по типам, так и по свойствам. Каждую надо проверить. Код станет длиннее, но гораздо более безопасным и читабельным.
-
<img src="img/aaa.png"...
пути к ресурсам обычно пишутся от корня сайта, для того чтобы ресурсы не зависели от пути где лежит сам скрипт (
<img src="/img/aaa.png"...
).
Самое главное вы так и не написали - что не работает то?