Wysyłanie adresu IP odwiedzającego stronę na e-mail bez użycia formularza i przycisku SUBMIT

0

Udało mi się wysyłać e-maile z formularza (poniżej kod).
Ale nie potrafię wysłać e-maila bez formularza, np. zaraz po załadowaniu się lub po odświeżeniu strony. Jako treść wiadomości chcę wysyłać adres IP odwiedzającego stronę. Dlaczego nie wysyła? Co jest źle napisane? Jeśli nie ma formularza i submit, to nie zadziała?

----------------------------------- NIE DZIAŁA I NIE WYSYŁA E-MAILI -------------------------

<?php mail('[email protected]',$subject,$message); ?>

----------------------------------- FORMULARZ - DZIAŁA I WYSYŁA E-MAILE -------------------------

<?php mail('[email protected]','temat','tresc'); if (!isset($_POST["submit"])) { ?> <form method="post" action="&lt;?php echo $_SERVER[" ?="?" php_self"];="PHP_SELF&quot;];"> "> temat: <input type="text" name="subject" value="temacik" size="50">

wiadomość:

<textarea rows="1" cols="40" name="message"></textarea> <input type="submit" name="submit" value="naciśnij, żeby wysłać"> </form> <?php } else { if (isset($_POST["message"]) or isset($_POST["subject"])) { $subject = $_POST["subject"]; $message = $_POST["message"]; $message = wordwrap($message, 70); mail('[email protected]',$subject,$message); echo ' Wiadomość wysłana '; } } ?></p>

Pozdrawiam
Marek

0
mail('[email protected]',$subject,$message); 

A skąd ten kod ma wiedzieć jaki jest temat i treść wiadomości?

0

Mój błąd, w rzeczywistości kod jest dłuższy i pod treść wiadomości podstawiany jest IP.
Ale nawet, gdy kod jest jak poniżej, to nadal nie wysyła e-maila:

<?php mail('[email protected]','temacik','treść'); ?>

Dlaczego?

0
Marek9 napisał(a):

Mój błąd, w rzeczywistości kod jest dłuższy i pod treść wiadomości podstawiany jest IP.
Ale nawet, gdy kod jest jak poniżej, to nadal nie wysyła e-maila:

<?php mail('[email protected]','temacik','treść'); ?>

Dlaczego?

Napisałeś, że kodu jest więcej. Pokaż ten kod. Rozumiem, że sam kod w postaci:

<?php
mail('[email protected]', 'temacik', 'treść');
?>

zawarty w jednym pliku działa bezproblemowo?

0
leonpro778 napisał(a):
Marek9 napisał(a):

Mój błąd, w rzeczywistości kod jest dłuższy i pod treść wiadomości podstawiany jest IP.
Ale nawet, gdy kod jest jak poniżej, to nadal nie wysyła e-maila:

<?php mail('[email protected]','temacik','treść'); ?>

Dlaczego?

Napisałeś, że kodu jest więcej. Pokaż ten kod. Rozumiem, że sam kod w postaci:

<?php
mail('[email protected]', 'temacik', 'treść');
?>

zawarty w jednym pliku działa bezproblemowo?

Oj nie, to źle rozumiesz... :-(
bo "nawet, gdy kod jest jak poniżej, to nadal nie wysyła e-maila:

<?php mail('[email protected]','temacik','treść'); ?>"

Ale mój kod w wersji z formularzem wysłał e-maila. Oba kody są na tej samej stronie, w tym samym pliku o nazwie index.php. Ten z formularzem muszę uaktywnić SUBMITem. A ten jednolinijkowy powinien wysłać się sam po otwrciu lub odświeżeniu strony, dobrze rozumiem? W takiej sytuacji powinienem otrzymać dwa e-maile, a dochodzi tylko jeden z formularza. Dodatkowo sprawdzam w panelu zarządzania stroną jakie e-maile strona wysłała. No i oczywiście jest tylko jeden w historii wysłanych: ten z formularza.
Czy ten kod jednolinijkowy musi być w jakimś konkretnym miejscu, np. po <html>, po <body>?

0

Wklejam moje wypociny, które nie wysyłają e-maila. Bo zapisywanie numeru IP do pliku działa.

<?php umask(0); $wskaznikdopliku=fopen("plik_w_ktorym_zapisuje_IP.txt","a+"); $data=date("d-m-Y H:i:s"); if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER["REMOTE_ADDR"]; } $wszystko = "$data : $ip \r\n"; fwrite ($wskaznikdopliku,$wszystko); fclose ($wskaznikdopliku); chmod ("plik_w_ktorym_zapisuje_IP.txt",0777); $message = $wszystko; $message = wordwrap($message, 70); mail('[email protected]','ktos wszedl na stronę',$message); ?> <html><body>

tutaj znajduje się część z formularzem i wysyłaniem e-maila

</body></html>
0

Usunąłem całą zawarość pliku php. Pozostawiłem jedynie to (podmieniłem prawdziwy e-mail):

<?php mail('[email protected]', 'temacik', 'treść'); echo 'gotowe'; ?>

wpisuję nazwę strony w pasek adresu przeglądarki i naciskam enter. Strona się wczytuje i pokazuje się słowo "gotowe". E-mail nie wychodzi i nie przychodzi. Dlaczego? Co robię źle?

0

Tą pierwszą próbę wysyłki emaila zmień na:

<?php
	$success = mail('[email protected]', 'My Subject', $message);
	if (!$success) {
		$errorMessage = error_get_last()['message'];
		print_r($errorMessage);
	} else { echo 'wiadomosc wyslana'; }
?>

Daj znać co się dzieje później.

0

Usunąłem resztę i w pliku znajdowało się jedynie to i nic więcej:

<?php $message = 'mysz'; $message = wordwrap($message, 70); $success = mail('[email protected]', 'My Subject', $message); if (!$success) { $errorMessage = error_get_last()['message']; print_r($errorMessage); } else { echo 'wiadomosc wyslana'; } ?>

plik to test2.php, ma atrybuty 777, otwarłem tę stronę i nie pokazało się NIC, żaden e-mail nie wyszedł z serwera.

0

Rozwiązałem problem.W panelu zarządzania była opcja php 5.2 lub php 7. Zmieniłem na php 7 i e-maile zacząły wychodzić.
Dziękuję Wam za poświęcenie czasu na odpowiedzi!

0

W polu TEMAT polecenia mail nie mogą być polskie litery.

1 użytkowników online, w tym zalogowanych: 0, gości: 1