Ci sono diverse cose che non vanno.
1) Prima di tutto, visto che il contenuto del form viene inviato alla pagina stessa in cui il form è contenuto, la prima volta che accedi alla pagina tutto il codice PHP all'inizio viene eseguito e non ha senso che lo sia, non ci sono dati da usare.
Il problema è che dovresti verificare se l'array $_POST è inizializzato, solo in tal caso devi eseguire il codice PHP, perché se non lo fosse vorrebbe dire che non è ancora stato fatto il submit del form. Devi mettere un if all'inizio che verifichi questa situazione ed eseguire l'invio solo se $_POST ha dei dati.
2)
Codice PHP:
$default = [
'name' => '',
'email' => '',
'message' => '',
'address' => '',
'url' => '',
// Qui aggiungerai tutti gli altri valori di default
];
$_POST = array_replace( $default, $_POST );
Questo codice è inutile, visto che poi $default non lo usi da nessuna parte
3)
Codice PHP:
$field_name = $_POST['name'];
$field_email = $_POST['email'];
$field_message = $_POST['message'];
$field_address = $_POST['address'];
$url = $_POST['url'];
Anche questo codice è inutile, dato che assegni i valori di $_POST['...'] senza manipolarli in alcun modo hai solo variabili duplicate contenenti gli stessi identici valori, puoi usare direttamente $_POST['name'] ecc... dove ora usi $field_name ecc...
4)
Codice PHP:
$delay = "4";
$url = "https://www.google.com";
Queste sono altre variabili inutili che non usi.
Comincia col fare un po' di pulizia, avrai meno della metà del codice.