0

我已经从网络下载了一个联系脚本(带有文件附件)。我在 wamp(pc)中运行它但是当我点击提交时它显示这个错误。你能帮我解决这个错误吗

警告:mail() [function.mail]:无法在“localhost”端口 25 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或在 C:\wamp\www\ 中使用 ini_set()第 38 行上的contact.php 调用 S

您能否告诉我以下脚本是否有效

  <form action="" enctype="multipart/form-data" method="post">

  <label for="name">Name:</label><br/>
   <input type="text" id="name" name="name" /><br/>

  <label for="email">Email address:</label><br/>
     <input type="text" id="email" name="email" /><br/>

    <label for="topic">Subject:</label><br/>
   <input type="text" id="topic" name="topic" /><br/>
   <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
  <label>Upload a Menu:</label>
  <input type="file" name="file" size="20"><br>


  <label for="comments">Your comments:</label><br/>
  <textarea id="comments" name="comments" rows="5" cols="30"></textarea><br/>

   <button name="submit" type="submit">Send</button>

  </form>
  <?php
  if(isset($_POST['submit']))
   {
    // Pick up the form data and assign it to variables
    $name = $_POST['name'];
    $email = $_POST['email'];
    $topic = $_POST['topic'];
    $comments = $_POST['comments'];

    // Build the email (replace the address in the $to section with your own)
     $to = 'my@email.com';
     $subject = "Contact: $topic";
     $message = "$name said: $comments";
     $headers = "From: $email";

    // Send the mail using PHPs mail() function
   mail($to, $subject, $message, $headers);

  // Redirect
   echo('<br> your mail has been send<br>');
   }
  ?>
4

3 回答 3

1

正如 Dan Grossman 提到的,您的代码很好,而您遇到的错误是 SMTP 设置。我将尝试解释如何更正这些设置并设置本地主机以使用您的 gmail(或任何其他外部 SMTP 服务器)发送电子邮件。

首先,您需要找到 php.ini 文件并设置 sendmail_path,如下所示:

sendmail_path = "C:\wamp\sendmail\sendmail.exe -t -i"

sendmail.ini在 WAMP 安装中的“Sendmail”文件夹中找到,并添加以下内容:

smtp_server=localhost
smtp_port=25
default_domain=gmail.com
auth_username=[yourgmailname]@gmail.com
auth_password=[yourgmailpassword]

重新启动您的服务器。现在它应该可以发送电子邮件了。

于 2011-07-27T05:39:42.920 回答
1

代码没有问题,切换到不同的脚本也无济于事。

问题是您的计算机上没有运行用于发送邮件的邮件服务器。

于 2011-07-27T05:17:59.640 回答
-1

您的问题在于邮件功能,而不是提交表单。

获取更改 php.ini 的帮助

于 2011-07-27T05:18:22.760 回答