0

我最近在另一个主题上获得了一些帮助,并且能够从我的联系表单中收到一封电子邮件,但是除了消息文本之外的所有信息都被排除在外,并且它是从“Apache”发送的。有什么原因可能会发生这种情况吗?

<?php
if(isset($_POST['submit'])){
$name = $_POST['name'];
$company = $_POST['company'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "______@gmail.com";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";

$to ='______@gmail.com';
$send_contact=mail($to,$subject,$message,$header);

// Check, if message sent to your email 
// display message "We've received your information, thank you"

if($send_contact){
echo "We've received your contact information, thank you";
}
else {
echo "Error, please try again";
} }
?>


<form action = "../mail.php"method="POST">
<p>Name</p> <input type="text" name="name">
<p>Company</p> <input type="text" name="company">
<p>Email</p> <input type="text" name="email">
<p>Phone</p> <input type="text" name="phone">
<p>Message</p><textarea name="message" rows="4" cols="25"></textarea><br />
<input type="submit" value="Submit" name="submit">
</form>
4

2 回答 2

0

编辑这个

send_contact=mail($to,$subject,$message,$header);

send_contact=mail($to,$subject,$message,$mailheader);

你也可以这样发送

send_contact = main($to,$subject,$formcontact,$mailheader);

如果你想......和

用 php 发送邮件不是一步到位的过程。mail() 返回真/假,但即使它返回真,也不意味着消息将被发送。所有 mail() 所做的就是将消息添加到队列中(使用 sendmail 或您在 php.ini 中设置的任何内容)

没有可靠的方法来检查消息是否已在 php 中发送。您将不得不查看邮件服务器日志。

于 2013-02-21T06:05:57.543 回答
0

您使用了错误的变量名。

请将邮件调用的最后一个参数从 $header 更改为 $mailHeader

$send_contact=mail($to,$subject,$message,$header);

$send_contact=mail($to,$subject,$message,$mailHeader);

在发送之前附加您需要的所有信息。使用下面的代码,

$name = $_POST['name'];
$company = $_POST['company'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$messageContent = $name."\n".$company."\n".$email."\n".$phone."\n".$message."\n";

$send_contact=mail($to,$subject,$messageContent,$mailHeader);
于 2013-02-21T06:06:45.207 回答