-1

我是 php 的初学者,我尝试编写一个简单的联系表格。我的问题是:我的代码有什么问题?我似乎找不到任何格式化或任何错误...这是我的代码:

联系方式.php:

    ...page content...
    <div class="contact">              
            <form action="send_mail.php" method="post">
             <fieldset>
                  <label for="name">Name:</label>
                  <input type="text" name="name" placeholder="Enter your name" />   
                  <label for="email">Email:</label>
                  <input type="email" name="email" placeholder="Enter your email address" />        
              <label for="message">Message:</label>
              <textarea name="message" placeholder="What's on your mind?"></textarea>
              <br>
              <input type="submit" name="submit" value="Send message" />

             </fieldset>
              </form>
</div>

...page content...

发送邮件.php:

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: My website'; 
    $to = 'someone@email.cz'; 
    $subject = 'My contact form message';

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";

    if ($_POST['submit']) {              
         if (mail ($to, $subject, $body, $from)) { 
             echo '<p>Your message has been sent!</p>';
           } else {                                            
             echo '<p>Something went wrong, go back and try again!</p>'; 
           } 
    }
?>

我收到“出了点问题”消息,这意味着邮件()返回错误,但我不知道为什么。谢谢你的帮助!

4

3 回答 3

2

您的标题需要包含正确的标题
使用仅From: My website代表去垃圾邮件。
使用电子邮件 =>From: $email\r\n会更好。

试试这个,经过测试。

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$headers = "From: $email\r\n";
$to = 'your_email@somewhere.com'; 
$subject = 'My contact form message';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";

if(empty($email)) {
die("Something went wrong, go back and try again!"); 
}
elseif (isset($_POST['email'])) {
mail($to,$email,$body,$headers);
echo "<p>Your message has been sent!</p>";
} 
?>
于 2013-03-21T14:36:19.083 回答
2

这是在本地计算机上运行脚本的常见问题。大多数计算机没有电子邮件服务器,并且被配置为从该服务器发送电子邮件。

要使 PHP 邮件功能正常工作,您的计算机必须设置有电子邮件服务器。您可以查看带有电子邮件支持的在线托管,也可以安装测试邮件服务器进行本地测试。

最后有一些关于非 Mac OS 的内容。过去我在这方面有过一些运气。

如果您在 Windows 上,这可能会更好:http ://www.toolheap.com/test-mail-server-tool/

于 2013-03-21T13:55:58.143 回答
1

1. 要使用此代码。您应该从任何域发送邮件。

for example: you should have a live website thru that domain email id only send mail to
others 

2. 使用 PHP-MAILER 编码发送邮件。只需从网上下载并进行更改和使用

于 2013-03-21T15:21:43.560 回答