Форма электронной почты для электронной почты по электронной почте - не отправляет почту - уже проверены настройки php.ini?

46
5

немного помогите с этой формой электронной почты PHP, я проверил другие вопросы здесь, но пока не нашел решения.

У меня на моем веб-странице очень простая подписка на электронную почту на PHP, однако она не отправляет почту. Думал, что это может быть проблемой с моим php.ini, но все кажется хорошим. Просто хотел, чтобы кто-то посмотрел на код здесь и посмотрел, не глупо я или нет!

<?php
$email_to = "subscribe@roomsby.com";
$success_message = "Thank you for subscribing to Roomsby.com. We will get back to you with details of our launch very soon!";
$site_name = "www.roomsby.com";

$email = trim($_POST['email']);
$submitted = $_POST['submitted'];

if(isset($submitted)){
if($email === '' || $email === 'Enter your email address' ) {
$email_empty = true;
$error = true;
} elseif (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$/i", $email)){
$email_unvalid = true;
$error = true;
}
}

if(isset($error)){
echo '<span class="error_notice"><ul>';
if($email_empty){
echo '<li>Please enter your email address</li>';
} elseif ($email_unvalid) {
echo '<li>Please enter a valid email address</li>';
} else {
echo '<li>An error has occurred while sending your message. Please try again later.</li>';
}
echo "</ul></span>";
}

if(!isset($error)){
$subject = 'Newsletter Submission';
$body = "Email: $email";
$headers = 'From: ' . $site_name . ' <' . $emailTo . '> ' . "\r\n";
$headers .= 'Reply-To: ' . $email;
mail($email_to, $subject, $body, $headers);

echo '<span class="success_notice">' . $success_message . '</span>';
}
?>

спросил(а) 2013-06-05T13:18:00+04:00 6 лет, 6 месяцев назад
1
Решение
45

isset() вернет True до тех пор, пока переменная не будет NULL, что означает, что даже когда переменная False, isset() вернет True.

Итак, имея в виду - попробуйте эту версию:

$error = FALSE; # assume no errors.

if(isset($submitted)){
if($email === '' || $email === 'Enter your email address' ) {
$email_empty = true;
$error = TRUE;
} elseif (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$/i", $email)){
$email_unvalid = true;
$error = true;
}
}

if ($error) {

echo '<span class="error_notice"><ul>';
if($email_empty){
echo '<li>Please enter your email address</li>';
} elseif ($email_unvalid) {
echo '<li>Please enter a valid email address</li>';
} else {
echo '<li>An error has occurred while sending your message. Please try again later.</li>';
}
echo "</ul></span>";
} else {

$subject = 'Newsletter Submission';
$body = "Email: $email";
$headers = 'From: ' . $site_name . ' <' . $emailTo . '> ' . "\r\n";
$headers .= 'Reply-To: ' . $email;
mail($email_to, $subject, $body, $headers);

echo '<span class="success_notice">' . $success_message . '</span>';
}

ответил(а) 2013-06-05T13:23:00+04:00 6 лет, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема