Я создаю страницу «забытый пароль», где пользователь вводит свой адрес электронной почты, и сценарий находит пароль, связанный с этим электронным письмом, и отправляет его на сохраненный адрес электронной почты.

Я считаю, что проблема связана с моим почтовым сервером SMTP. Я использую WAMP, у которого его нет, поэтому я загрузил один, который был бесплатным.

Это скрипт php, который я использую:

    $id = checkEmail($email);
    $record = readMemberRecord($id);
    $password = @mysql_result($record,0,'cred');

    if($password){
        $email_subject = "Email Request";
        $email_body = "Your password is ".$password.".";
        $header = "NinjaMan";
        mail($email, $email_subject, $email_body,$header);
        $msg = "Your password has been sent to ".$email.".";
    }else{
        $msg = "Sorry, the email ".$email." wasn't found.";
    }

$ Msg выводится правильно, поэтому я знаю, что код передает почтовую функцию.

php
0
Nick Res 10 Мар 2012 в 20:41

3 ответа

Лучший ответ

Попробуйте отправить правильный "От" в $header.

$emailFrom = "admin@yourdomain.com"; // match this to the domain you are sending email from
$email = "example@example.com";
$subject = "Email Request";
$headers = 'From:' . $emailFrom . "\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "Return-path: " . $email;
$message = "Your password is ".$password.".";
mail($email, $subject, $message, $headers);

См. Подробную информацию о функции mail ().

Если это не сработает, попробуйте использовать PHPMailer. Вы настраиваете его в коде, не нужно редактировать php.ini.

Я использовал его в некоторых проектах (версия 2.0.4, я вижу, что последняя версия - 5.1), и у меня не было проблем.

3
binar 10 Мар 2012 в 18:47

Попробуйте использовать сервер Google для отправки писем, вы можете увидеть, как это сделать здесь

0
gosukiwi 10 Мар 2012 в 17:14

Попробуйте использовать это

//Email information
$to = "garggarima@gmail.com";
$subject = "Test mail";
$message = "Hello! This is a test email message.";
$from = "support@sltechsoft.com";
$headers = "From:" . $from;

$mail=mail($to,$subject,$message,$headers);
if($mail) {
    echo "Thanks for mail";
} else {
    echo "Mail not Sent";
}

//Email response
echo "Thank you for contacting us!";
0
Mi-Creativity 13 Фев 2016 в 07:03