Я пытаюсь отправить письмо с помощью Swiftmailer. У меня есть следующий код, в котором я отправляю письмо:
if(isset($_POST['submit'])) {
$token = substr(sha1(mt_rand()),0,22);
$resetAccount = "UPDATE members
SET token='".$token."',
token_expire='".date("Y-m-d H:i:s", strtotime('+1 hours'))."'
WHERE username='".$_POST['username']."'
AND email='".$_POST['email']."'";
$exec = $db->query($resetAccount);
if($exec->rowCount()) {
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$recoverylink = "<a href='http://www.".$_SERVER['SERVER_NAME']."/admin/recover.php?token=".$token."'>wachtwoordherstel voor ".$_POST['username']."</a>";
$mailbody = 'Beste '.$_POST['username'].',<br><br>U heef een token voor wachtwoordherstel aangevraagd. Het komend uur kunt u uw wachtwoord veranderen via deze link: '.$recoverylink;$message = Swift_Message::newInstance()
->setSubject("Wachtwoordherstel voor ".$_POST['username'])
->setFrom(array('cms@'.$_SERVER['SERVER_NAME'] => "Q Sites CMS"))
->setTo(array($_POST['email'] => $_POST['username']))
->setBody($mailbody, 'text/html')
;$result = $mailer->send($message);
echo "<div class='alert'>Een e-mail met instructies is verzonden naar ".$_POST['email'].".</div>";
}
else {
echo "<div class='alert'>Uw account is niet gevonden.</div>";
}
}
Код прошёл мимо if($exec->rowCount()) {
и таким образом отголоски echo "<div class='alert'>Een e-mail met instructies is verzonden naar ".$_POST['email'].".</div>";
но почта не отправлена. Что я делаю неправильно?
Форма, из которой используется ввод:
<form id="login-form" method="post" class="form">
<input type="text" name="username" placeholder="Gebruikersnaam" required >
<input type="email" name="email" placeholder="E-mail" class="email" required >
<input type="submit" name="submit" value="Herstel">
</form>
Задача ещё не решена.
Других решений пока нет …