此代码适用于我的联系页面,它会发出一封我可以使用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的新手,所以试着说话就好像你是第一次学习一样。
谢谢!
编辑:
变量无关。他们不说话。它们具有相同的名称,但存在于彼此无关的不同页面上。
答案 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);