Это плохой шаблон:
header('location:success.html');
$mail->send();
echo 'Message has been sent';
Вы не знаете, что отправка прошла успешно до после вызова send()
и любого контента, который вы выводите после установки заголовка будет либо потерян (потому что он перенаправляет, пока его не увидят), либо предотвратит перенаправление (потому что контент уже отправлен). Этого должно быть достаточно в следующем порядке:
$mail->send();
header('location:success.html');
exit; //Do nothing else after issuing the redirect
Строго говоря, перенаправления должны использовать абсолютные URL-адреса, поэтому, возможно, добавьте это в адрес назначения.
Вы также делаете это:
$email = $_POST['email'];
...
$mail->setFrom($email, $name);
Это подделка и, вероятно, в конечном итоге ваше сообщение будет заблокировано, отклонено или отфильтровано. Сделайте это вместо этого:
$mail->setFrom('bookings@rios.com.au', $name);
$mail->addAddress('bookings@rios.com.au', 'Rios bookings');
$mail->addReplyTo($email, $name);
Таким образом, сообщение будет отправлено вам, но ответы будут go на адрес отправителя.
Еще один совет - узнайте, как использовать composer.