• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wysłać maila użytkownikowi

VPS Starter Arubacloud
0 głosów
308 wizyt
pytanie zadane 25 maja 2019 w PHP przez manager96 Bywalec (2,050 p.)

Hej, chciałbym się dowiedzieć  czy żeby skonfigurować poczte na serwisie (np użytkownik zapomni hasła, kliknie w przycisk 'odzyskaj' i dostanie na maila nowe hasło), należy skonfigurować jakieś SMTP czy coś? Czy wystarczy zwykły skrypt w PHP?

Strona znajduje się na cba.pl, tam też założyłem konto email odzyskaj@liga.cba.pl.

I teraz czy sam kod PHP wystarczy czy nalezy zrobić coś jeszcze? Bo to co aktualnie posiadam nie działa mi jeszcze:


Wstecz (accesskey b)    Zapisz (accesskey s)    	plik: /liga.cba.pl/odzyskaj.php
Character encoding:    	Status: Zapisany 2019-05-25 22:12:15 w trybie FTP_ASCII
<?php

	require_once "connect.php";

	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
	
	
			if(isset($_GET['resetpassword'])){
				$key = $_GET['resetpassword'];
				$zapytanie = "SELECT acces_token FROM uzytkownicy WHERE acces_token = $acces_token";
			}
			
			if(isset($_POST['email'])){
				if(empty($_POST['email'])){
					$_SESSION['blad'] = '<span style="color:red">Nie podano maila!</span>';
					//header("location: odzyskaj.php");
					//exit;
				}	
				else {

				$email = $_POST['email'];
			
				$haslo=mt_rand();
					$acces_token= password_hash($haslo, PASSWORD_DEFAULT);
				
	$zapytanie = "UPDATE uzytkownicy SET pass = '$acces_token' WHERE email LIKE '$email'";
	$wynik = mysqli_query($polaczenie, $zapytanie);
			
				
				$_SESSION['blad']= '<span style="color:red">Wysłano maila resetującego hasło na Twojego maila.
				<br>
				Twoje hasło to: '.$haslo.' </span>';
				
				
				$email_template = "email_resetpassword_template.html";
		$wiadomosc = file_get_contents($email_template);
		$wiadomosc = str_replace("[login]", $user, $wiadomosc);
		$wiadomosc = str_replace("[key]", $acces_token, $wiadomosc);
		$wiadomosc = str_replace("[url]","http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ,$wiadomosc);
		

	
	$naglowki = 'From: odzyskaj@liga.cba.pl' . "\r\n" .
					'Replay-To: odzyskaj@liga.cba.pl' . "\r\n" .
					'Content-type: text/html; charset=utf-8' . "\r\n";
					
			mail($user, "Aktywacja konta " . $user, $wiadomosc, $naglowki);
				
				
				
				//header("Location: odzyskaj.php");
				//exit;
				}
			}
			else {
				$_SESSION['blad'] = '<span style="color:red">Wpisz swój E-mail</span>';
			}
		
		$polaczenie->close();
	
?>

					<?php
	if(isset($_SESSION['blad']))	echo $_SESSION['blad'];
?>	

		<div id="loginind">
			<form action="odzyskaj.php" method="post">
	
				email  <input type="text" name="email" /> 
				<br></br>
				
			<input type="submit" value="Odzyskaj hasło"/>
				
				<div style="clear:both;"></div>
	
			</form>
		</div>
		
		
		
		

 

2 odpowiedzi

0 głosów
odpowiedź 25 maja 2019 przez dawid6512 Gaduła (4,550 p.)
komentarz 25 maja 2019 przez dawid6512 Gaduła (4,550 p.)
ps. czemu akurat odzyskaj@...?

w takich emailach zazwyczaj używa się noreply@...

taka niepisana zasada mozna powiedziec :D

oraz zamiast mysqli polecam pdo
komentarz 25 maja 2019 przez manager96 Bywalec (2,050 p.)
require 'vendor/autoload.php';

Co to właściwie jest

komentarz 25 maja 2019 przez dawid6512 Gaduła (4,550 p.)
jesli uzywasz phpmailera to wystacza ci tylko te 2 pliki:

class.phpmailer.php

class.smtp.php

A i przy polskich znakach w tytule wywala chyba Warninga ale wysyła.
0 głosów
odpowiedź 25 maja 2019 przez Arkadiusz Waluk Ekspert (287,550 p.)
Co dokładnie znaczy, że "nie działa"?

Zależy od konfiguracji serwera. SMTP dla mail() konfiguruje się w php.ini, więc na zwykłym hostingu tego sam nie ruszysz. Pytanie czy jest skonfigurowane, na większości hostingów tak, ale na darmowym cba to nie wiem.

Generalnie lepiej wysyłać przez biblioteki jak SwiftMailer/PHPMailer, tam normalnie podajesz dane do SMTP i jest ogólnie łatwiej i wygodniej.
komentarz 25 maja 2019 przez dawid6512 Gaduła (4,550 p.)
zalezy co masz na mysli na zwyklym, na np.home.pl nie ma problemu z ustawieniem php.ini
komentarz 25 maja 2019 przez Arkadiusz Waluk Ekspert (287,550 p.)
Miałem na myśli większość współdzielonych, które najczęściej dają dostęp do zmiany wybranych ustawień z php.ini na poziomie panelu administracyjnego i tyle. Jeśli home faktycznie pozwala zmieniać dowolne parametry z php.ini każdemu, to nie wiedziałem. Tak czy siak lepiej użyć jednej z wymienionych wyżej bibliotek i mieć spokój.

Podobne pytania

0 głosów
0 odpowiedzi 163 wizyt
pytanie zadane 5 kwietnia 2020 w C# przez tonn204 Mądrala (7,440 p.)
0 głosów
2 odpowiedzi 895 wizyt
pytanie zadane 9 czerwca 2016 w PHP przez adojado Początkujący (420 p.)
0 głosów
2 odpowiedzi 193 wizyt
pytanie zadane 30 czerwca 2020 w Sieci komputerowe, internet przez Bartek12 Mądrala (5,510 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...