if (isset($_POST['submit'])) {
$name = mysqli_real_escape_string($conn, $_POST['name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$password = mysqli_real_escape_string($conn, md5($_POST['password']));
$confirm_password = mysqli_real_escape_string($conn, md5($_POST['confirm-password']));
$code = mysqli_real_escape_string($conn, md5(rand()));
if (mysqli_num_rows(mysqli_query($conn, "SELECT * FROM users WHERE email='{$email}'")) > 0) {
$msg = "{$email} - This email address has been already exists.";
} else {
if ($password === $confirm_password) {
$sql = "INSERT INTO users (name, email, password, code) VALUES ('{$name}', '{$email}', '{$password}', '{$code}')";
$result = mysqli_query($conn, $sql);
if ($result) {
echo "";
//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
$mail->isSMTP(); //Send using SMTP
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '*';
$mail->Password = '*';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 587;
//TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
//Recipients
$mail->setFrom('*');
$mail->addAddress($email);
//Content
$mail->isHTML(true); //Set email format to HTML
$mail->Subject = 'no reply';
$mail->Body = 'Here is the verification link http://localhost/login/?verification='.$code.'';
$mail->send();
echo 'Ваше письмо отправлено';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
echo "";
$msg = "We've send a verification link on your email address.";
} else {
$msg = "Something wrong went.";
}
} else {
$msg = "Password and Confirm Password do not match";
}
}
}
PHP
PHPMailer не приходят письма на почту.
Взял код в гитхабе, подключил google почту, но письмо не приходит, в чем может быть проблема?
- если не правильно указать хост логин пароль и порт то работать не будет ничего вобще
- если указал правильно но все равно не отправляет - надо еще в гугле разрешить отправку
- если настроил предыдущие пункты и таки письмо ушло но к адреату не дошло значит попало в спам
- если обошел спам фильтры и начал часто отправлять то опять заблочат
Нужно смотреть какой код ошибки возвращает
Неправильные учетные данные SMTP: Убедитесь, что вы правильно указали хост, порт, имя пользователя и пароль для подключения к серверу SMTP. Учетные данные должны быть действующими и соответствовать настройкам вашей почты.
Блокировка порта: Некоторые хостинг-провайдеры или интернет-провайдеры могут блокировать порты, которые используются для отправки почты, такие как порт 587, который обычно используется для SMTP. Убедитесь, что порт, указанный в вашем коде, не заблокирован и разрешен для отправки почты.
Ограничения безопасности: Ваш сервер хостинга или почтовый сервер может иметь ограничения безопасности, такие как SPF (Sender Policy Framework) или DKIM (DomainKeys Identified Mail), которые могут блокировать отправку писем. Убедитесь, что ваш сервер соответствует требованиям безопасности и настроен правильно.
Фильтры спама: Письмо может быть отфильтровано как спам почтовыми серверами получателя. Проверьте папку "Спам" в почтовом ящике получателя и убедитесь, что письмо не было ошибочно отфильтровано.
Ошибки в коде: Проверьте ваш код на наличие ошибок, опечаток или неправильных настроек. Убедитесь, что вы используете правильные настройки и методы отправки письма в соответствии с требованиями почтового сервера.
Если вы проверили все вышеуказанные аспекты и письмо по-прежнему не приходит, рекомендуется проверить журналы ошибок (error logs) на сервере, чтобы выявить возможные ошибки и решить проблему.
Блокировка порта: Некоторые хостинг-провайдеры или интернет-провайдеры могут блокировать порты, которые используются для отправки почты, такие как порт 587, который обычно используется для SMTP. Убедитесь, что порт, указанный в вашем коде, не заблокирован и разрешен для отправки почты.
Ограничения безопасности: Ваш сервер хостинга или почтовый сервер может иметь ограничения безопасности, такие как SPF (Sender Policy Framework) или DKIM (DomainKeys Identified Mail), которые могут блокировать отправку писем. Убедитесь, что ваш сервер соответствует требованиям безопасности и настроен правильно.
Фильтры спама: Письмо может быть отфильтровано как спам почтовыми серверами получателя. Проверьте папку "Спам" в почтовом ящике получателя и убедитесь, что письмо не было ошибочно отфильтровано.
Ошибки в коде: Проверьте ваш код на наличие ошибок, опечаток или неправильных настроек. Убедитесь, что вы используете правильные настройки и методы отправки письма в соответствии с требованиями почтового сервера.
Если вы проверили все вышеуказанные аспекты и письмо по-прежнему не приходит, рекомендуется проверить журналы ошибок (error logs) на сервере, чтобы выявить возможные ошибки и решить проблему.
Mark Haytbayew
Обобщенная инструкция, все проверил, данные указанны правильно, все требуемые дополнения установлены, сайт стоит на локально сервере xampp, но все-равно письма не приходят.
Похожие вопросы
- Не приходят письма с сайта PHP
- Отправка option из формы select на почту? Как?
- Приходят письма на электронную почту от Альфа банка.
- Почему с авито на почту маил не приходит письмо для восстановления пароля?
- На почту приходят письма от разных людей, но с примерно одинаковым содержанием
- Почему долго не приходят письма? По идее уже давно должны были придти, но не приходят! (По почте) . (Почта России).
- Как отправить письмо по почте?
- к письмам электронной почты не крепятся файлы вложений
- Мне на почту приходят письма с предложением заработка в Интернете. И якобы там делать ничего не нужно. Это развод?
- Как доказать что не получал извещений о заказном судебном письме по почте?