PHP邮件在某些网页上发送

时间:2013-09-10 03:49:38

标签: php email gmail

此代码适用于我的联系页面,它会发出一封我可以使用gmail阅读的电子邮件。

<?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的新手,所以试着说话就好像你是第一次学习一样。

谢谢!

编辑:

变量无关。他们不说话。它们具有相同的名称,但存在于彼此无关的不同页面上。

2 个答案:

答案 0 :(得分:0)

冒号(“:”)离开From,X-Mailer等后,应该有一个空格。

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

此外,请确保正确格式化“收件人”。

第二页上$email的价值是多少?它被正确设置了吗?

最后,这个运行的服务器是什么?可能是默认的From:电子邮件地址无效(这就是为什么第一页上的代码按预期工作,因为它设置了正确的From电子邮件地址?)。

答案 1 :(得分: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);