2013-09-10 2 views
0

Этот код предназначен для моей контактной страницы, и он выдает электронное письмо, которое я могу читать с помощью gmail.PHP Mail Отправка на некоторые веб-страницы

<?php 
$message = "Sender:" . "\r\n" . $_POST["email"] . "\r\n" . "\r\n" . "Company Name:" . "\r\n" . $_POST["company"] . "\r\n" . "\r\n" .'Message:' . "\r\n" . $_POST["message"]; 

$to = "EMAIL ADDRESS TAKEN OUT FOR SECURITY PURPOSES, IT'S LEGIT"; 
$subject = $_POST["title"]; 
$body = $message; 

$headers = 'From:' . $_POST["email"] . "\r\n" . 
    'Reply-To:' . $_POST["email"] . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 


if (mail($to, $subject, $body, $headers)) { 
    echo("<p class='form'>You're message was sent successfully! We'll get back to you shortly. In the mean-time... "); 
} else { 
echo("<p class='form'>Oops! There was an error sending your message."); 
} 
?> 

Однако, когда я ставлю этот код на другую страницу ...

$message = "Hey, testing this. Go to this link <a href='WEB ADDRESS HIDDEN=" .$display ."'>Activate</a>" ; 

$subject = "Activate your Account"; 

if (mail($email, $subject, $message)) 
{ 
echo "A verification link was sent to <strong>".$email."</strong>"; 
} 

Он не посылает электронную почту! $ email - это переменная, которую я раньше использовал для вставки в базу данных. Пользователь ввел его. После этого я отправляю им электронное письмо, но оно не отправляется. Mail() возвращает true, так как он печатает текст с правильным адресом электронной почты.

Что здесь не так? Какие-либо предложения?

Я новичок в php, поэтому стараюсь говорить так, как будто вы учились в первый раз.

Спасибо!

EDIT:

Переменные не связаны. Они не говорят. Они имеют одинаковые имена, но существуют на разных страницах, которые не имеют никакого отношения друг к другу.

ответ

0

После того, как двоеточие («:») иона, X-Mailer и т. Д., Должно быть пространство.

$headers = 'From: ' . $_POST["email"] . "\r\n" . 
    'Reply-To: ' . $_POST["email"] . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

Кроме того, убедитесь, что символ «Кому» отформатирован правильно.

Какая ценность $email на второй странице? Правильно ли он установлен?

И наконец, на каком сервере это работает? Может быть, что адрес электронной почты по умолчанию From: недействителен (и поэтому код на первой странице работает должным образом, потому что он устанавливает правильный адрес электронной почты From?).

+0

Первый код работал раньше. Второй фрагмент кода существует на другой странице и не работает. Я обновил его, но только потому, что могу. :) – Anthony

+0

OK. Как насчет данных сервера? Является ли адрес электронной почты ОК по умолчанию, потому что на второй странице нет заголовков. – timgws

0

переменная $email должна существовать на обеих страницах, что означает, что вы должны передать его на второй сценарий как-то, либо $_GET или $_SESSION

на первый сценарий

// put this at the very top of the script to start a session 
<?php 
session_start(); 

// then, do your stuff and, after you set your $email variable, se a session 
$_SESSION['email'] = $email; 

на свой второй сценарий

<?php 
session_start(); 
$email = $_SESSION['email']; 

// do your other stuff, then send your email... 
mail($email, $subject, $message); 
+0

Переменные не связаны и отбрасываются после одного использования. Я обновил основную тему, чтобы убедиться, что все ее видят. Спасибо за ответ. – Anthony

+0

ОК. Вы уверены, что gmail не просто медленно? Вы пробовали использовать другой адрес электронной почты в другой службе? – timgavin

Смежные вопросы