Въпрос относно изпращане на email за потвърждение

C++ JAVA
Post Reply
Knoppix_
Турист
Турист
Posts: 322
Joined: Mon Aug 24, 2009 11:55 am

Въпрос относно изпращане на email за потвърждение

Post by Knoppix_ » Sun Feb 07, 2016 5:27 pm

Здравейте, имам форма за регистрация и искам при регистрация да се изпраща мейл на потребителя за потвърждение, проблема че записът се изпълянва но не се изпраща email по надолу е кода някой ако може да помогне бих бил благодарен

Code: Select all


$sql = "INSERT  INTO `users` (`id`, `username`, `password`, `first_name`, `last_name`, `email`, `com_code`) 
				VALUES (NULL, '{$username}', '{$password}', '{$first_name}', '{$last_name}', '{$email}', '{$com_code}')";
				

		if ($mysqli->query($sql)) {
		 $to = $email;
  		 $subject = "Confirmation from MY ONLINE TEACHER to $username";
   		 $header = "MY ONLINE TEACHER: Confirmation from MY ONLINE TEACHER";
   		 $message = "Please click the link below to verify and activate your account. rn";
         $message .= "http://www.my-online-teacher.com/?page=confirm&passkey=$com_code";

   		 $sentmail = mail($to,$subject,$message,$header);
		 if($sentmail)
            {
  		 echo "Your Confirmation link Has Been Sent To Your Email Address.";
   			}

uphero
Потребител
Потребител
Posts: 757
Joined: Mon Feb 20, 2012 12:26 pm
Answers: 32
Location: Казанлък
Contact:

Post by uphero » Sun Feb 07, 2016 6:04 pm

Виж как се използва първо mail()
http://php.net/manual/en/function.mail.php

Knoppix_
Турист
Турист
Posts: 322
Joined: Mon Aug 24, 2009 11:55 am

Post by Knoppix_ » Sun Feb 07, 2016 6:22 pm

Ами виждам и не виждам нищо нередно а и е факт че скрипта работи на един хостинг но на друг не иска просто искам да видя дали има грешка при мен и къде е

systems
Турист
Турист
Posts: 282
Joined: Fri Sep 28, 2012 7:04 pm
Location: ..

Post by systems » Sun Feb 07, 2016 7:30 pm

На хоста трябва да има инсталиран smtp сървър за да може да се пращат съобщения.

Knoppix_
Турист
Турист
Posts: 322
Joined: Mon Aug 24, 2009 11:55 am

Post by Knoppix_ » Sun Feb 07, 2016 8:22 pm

Уж го има платен хостинг е при формата от която пращам забравена парола всичко работи но като искам да изпратя писмо за потвърждение не се получава

systems
Турист
Турист
Posts: 282
Joined: Fri Sep 28, 2012 7:04 pm
Location: ..

Post by systems » Sun Feb 07, 2016 8:41 pm

А защо неопиташ така:

[php] $to=$email;
$subject = "Confirmation from MY ONLINE TEACHER to $username";
$message = "http://www.my-online-teacher.com/?page= ... =$com_code";
$headers = 'From:email@site.com' . "\r\n" . 'Reply-To:email@site.com' . "\r\n" . 'Content-type: text/html; charset=UTF-8' . "\r\n" . 'X-Mailer: PHP/' . phpversion();
$email = mail($email,$subject,$message,$headers);
if($emai==true) {
echo "Your Confirmation link Has Been Sent To Your Email Address";
}[/php]

на мястото на email@site.com пишеш емаил адреса си.
аз използвам същия скрипт които съм дал при регистрация с потвърждаване от емаил и нямам проблеми.

User avatar
vinsbg
Гуру
Гуру
Posts: 2604
Joined: Wed Jan 28, 2009 12:21 pm
Answers: 51
Location: София
Contact:

Post by vinsbg » Mon Feb 08, 2016 6:26 am

Ето, какво използвам аз. Когато потребител се регистрира и му изпратя email за активация:

Code: Select all

	if(!isset($error)){

		//hash the password
		$hashedpassword = $user->password_hash($_POST['password'], PASSWORD_BCRYPT);
		
		//create the activasion code
		$activasion = md5(uniqid(rand(),true));

		try {

			$stmt = $pdo->prepare('INSERT INTO users (username,password,email,active) VALUES (:username, :password, :email, :active)');

			$stmt->execute(array(
				':username' => $_POST['username'],
				':password' => $hashedpassword,
				':email' => $_POST['email'],				
				':active' => $activasion
			));
			$id = $pdo->lastInsertId('id');

			//send email
			$to = $_POST['email'];
			$subject = "Заглавието...";
			$body = "Моля, натиснете на следния линка, за да активирате своя акаунт:\n\n ".DIR."activate.php?x=$id&y=$activasion\n\n ";
			$additionalheaders = "From&#58; <".SITEEMAIL.">\r\n";
			$additionalheaders .= "Reply-To&#58; ".SITEEMAIL."";
			mail&#40;$to, $subject, $body, $additionalheaders&#41;;

		
			header&#40;'Location&#58;  ?action=joined'&#41;;
			exit;

		&#125; catch&#40;PDOException $e&#41; &#123;
		    $e->getMessage&#40;&#41;;
		    exit;
		&#125;
	&#125;
И вече в activate.php си го обработвам ..

Post Reply