В приложении 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>";
}