Czy może być taka opcja, że $_SERVER['QUERY_STRING']; mam wyłączone na serwerze?
Wstawię może moje "skrypty"

zapewne mnie wysmiejecie jak zobaczycie to rozwiazanie, ale inaczej nie potrafie

Więc tak:
mam sobie strone np.
jakaś-domena.pl/podstrona250.php a w niej m.in:
<form action="mail.php" method="post">
<input type="submit" name="submit" value="Wyślij" class="guzik"></form>
nie ma w tym formularzu zmiennych (chce tylko guzik "wyślij tą stronę", a następnie w nowym oknie "Twoje imię" i kolejny guzik "OK", który wyśle link.
i wymyśliłem to tak:
skrypt mail.php
<?php
// ta funkcja ma stwierdzic, ze poprzednio nie podalem zmiennych
if (!empty($_POST['imie']) && !empty($_POST['email'])) {
$adres = $_SERVER['QUERY_STRING'];
$tytul = 'Mail z linkiem'';
$message = "<b>nadawca wiadomosci: </b> $_POST[imie] <br />
<b>adres:</b> $adres";
$naglowki = "From: $_POST[email] <$_POST[email]>".PHP_EOL;
$naglowki .= "MIME-Version: 1.0".PHP_EOL;
$naglowki .= "Content-type: text/html; charset=utf-8".PHP_EOL;
@mail("$email","$tytul","$message","$naglowki")
or die('Nie udało się wysłać wiadomości. Może sprawdź jeszcze raz?');
// jak powodzenie to
echo 'Wysłałeś wiadomość';
}
// lub niepowodzenie - to ma sie wyswietlac jak nacisnie sie guzik - wyslij link
else echo '
<form action="mail.php" method="post">
<tr>
<td>Imię:</td>
<td><input type="text" name="imie" style="width: 250px"></td>
</tr>
<tr>
<td><input type="text" name="email" style="width: 250px"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Wyślij" class="guzik"></td></form>
';
?>
Może dlatego nie wysyła bo zamotałem z tym formularzem?
Tylko, że nie wiem jak w inny sposób można wywołać wysyłanie maila jakimś guzikiem (w tym momencie pobrać aktualny adres strony)
następnie wyświetlić nowe okno, w którym dopiero będzie pole wpisz imie i adres odbiorcy.