В setText('$body')
вы использовали одинарные кавычки, а не двойные, поэтому переменная $body
не раскрывается автоматически - она передает ее как буквенную строку. Вы должны либо использовать двойные кавычки, либо просто передать ее как саму переменную, поскольку она уже должна быть строкой (поэтому просто используйте setText($body)
без кавычек).
Кроме того, чтобы избежать возможных проблем с экранированием, вы можете переключиться на конкатенацию строк для создания переменной тела или использовать более явное расширение переменной, заключив их в фигурные скобки, например:
$body = "You have received a new message from HMP Reseller contact form.\n\n"."Here are the details:\n\nName: ${name}\n\nEmail: ${email}\n\nPhone: ${phone}\n\nMessage:\n${message}";