Я отправляю очень простое сообщение HTML, используя PHP mail (). Целью было отправить ссылку, содержащую адрес электронной почты пользователя и код подтверждения. Когда пользователь щелкнул ссылку, сайт получит адрес электронной почты и код, чтобы убедиться, что адрес электронной почты пользователя является точным.
Сначала это сработало, когда это было не что иное, как теги HTML / BODY, заголовок и ссылка Verify Email. Я отправил письмо несколько раз, отлаживая процесс проверки. Затем я сделал то, что считал незначительными, и он прекратил работать. Небольшие изменения закомментированы, как показано. Я добавил изображение и пару строк текста.
Он больше не отправляет электронные письма, и я не получаю никаких предупреждений или ошибок. Я удалил изображение, дополнительный текст и прокомментировал добавление ссылки, но он все равно не сработает. Может ли кто-нибудь увидеть, что я делаю неправильно? (Я изменил имена, чтобы защитить невинных.)
function sendEmail($email, $code) { $email = str_replace("@","%40",$email); $to = $email; $subject = 'Email Verification'; $headers = "From: " . strip_tags('someone@somewhere.com') . "\r\n"; $headers .= "CC: \r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; $message = "<html><body>\r\n"; $message .= "<h2>Thank you!</h2>\r\n"; //$message .= '<img src="http://img.ruphp.com/php/logo.png"><br>'; //$message .= 'Thank you for registering an account with us. '; //$message .= 'Please verify your email address by clicking the button below.<br>'; //$message .= '<a href="http://www.mytestwebsite.com/verifyemail.php?email='.$email.'&code='.$code.'">Verify Email</a>'; $message .= "</body></html>\r\n"; $message = wordwrap($message, 70, "\r\n"); mail($to, $subject, $message, $headers); }
Как я могу узнать, что случилось с моей настройкой? Есть ли веб-сайт, на котором будут отображаться ошибки в моем коде?
Спасибо за вашу помощь! SH
Единственное, что помешает вам отправить письмо:
$email = str_replace("@","%40",$email);
Потому что вы отправляете его на пример% 40hostname.com
Также, чтобы проверить, отправлено ли электронное письмо, используйте:
if(@mail($to, $subject, $message, $headers)) { echo "Mail Sent Successfully"; }else{ echo "Mail Not Sent"; }