Функция PHP mail () возвращает 1, но почта не отправляется, несмотря на настройку XAMPP - PullRequest
0 голосов
/ 28 сентября 2019

В приложении PHP на этапе регистрации я отправляю электронное письмо со ссылкой для подтверждения пользователю.Я использую XAMPP в localhost для обслуживания страницы, и моя база данных находится на другом устройстве, но в той же сети.Когда я заполняю форму и нажимаю кнопку регистрации, я получаю сообщение об успешном завершении, база данных обновляется, но на мой адрес не поступает электронное письмо.Я искал ответы и обнаружил, что мне нужно правильно настроить php.ini и sendmail.ini для того, чтобы это работало, и я тоже так сделал, но письмо все еще не отправлено.Кто-нибудь может объяснить, почему это происходит?Ниже приведены конфигурации как php.ini, так и sendmail.ini, поскольку с моим signup.php нет проблем, поскольку база данных обновляется.

sendmail.ini

[sendmail]
smtp_server= smtp.mail.yahoo.com

smtp_port=465

smtp_ssl=ssl

;default_domain=mydomain.com

error_logfile=error.log

;debug_logfile=debug.log

auth_username=mymail@yahoo.com

auth_password=mypassword

pop3_server=

pop3_username=

pop3_password=

force_sender=mymail@yahoo.com

force_recipient=

hostname=



php.ini


[mail function]
SMTP= smtp.mail.yahoo.com

smtp_port=465

sendmail_from = mymail@yahoo.com

sendmail_path = "\"C:\Users\GMKRG\Desktop\xampp\sendmail\sendmail.exe" -t"

;mail.force_extra_parameters =

mail.add_x_header=Off

mail.log = "\"C:\Users\GMKRG\Desktop\xampp\sendmail\error.txt"

;mail.log = syslog

Я также настроил свою учетную запись Yahoo для приема писем из менее безопасных приложений, но почта до сих пор не получена.Заранее спасибо.

РЕДАКТИРОВАТЬ: Ниже приведена функция php mail на случай, если она поможет больше.

$email = mysqli_real_escape_string($connection, $mailString);
$emailBody = "Please click on the link below to activate your account:\n\n";

$emailBody .= "localhost/website/activate.php?email=" . urlencode($email) . "&key=$activationKey";

if(mail($email, 'Confirm your registration', $emailBody, 'From:'.'myaddress@yahoo.com')){

    echo "<div class='alert alert-success'>Thank you for registering. A 
           confirmation email has been sent to $email. Please click on the 
           activation link inside it to activate your account.</div>";
}

1 Ответ

0 голосов
/ 29 сентября 2019

Кажется, что Yahoo SMTP-сервер не работает должным образом с xampp.Как только я перешел на gmail, все заработало.

...