【问题标题】:Email form .php script error电子邮件表单 .php 脚本错误
【发布时间】:2015-06-02 04:32:52
【问题描述】:

我有一个脚本,里面有一个电子邮件表单,然后我有一个 .php 脚本,它应该将表单中的输入发送到另一封电子邮件。问题是,当我提交表单时,出现以下错误:

警告:mail():无法在“127.0.0.1”端口 25 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或在 C:\Program Files (x86) 中使用 ini_set() )\EasyPHP-DevServer-14.1VC11\data\localweb\scripts\supFormSend.php 第 16 行


HTML 脚本:

<form action="supFormSend.php" method="post" id="contactForms">

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

    <div id="emailLabelForm">
        <label for="mail">E-mail:</label><br>
        <input type="email" id="mailInput" name="mailInput"/>
    </div>

    <div id="messageLabelForm">
        <label for="msg">Support Message:</label><br>
        <textarea id="messageInput" name="messageInput"></textarea>
    </div>

    <div class="submitEmailButton">
        <button type="submit" id="submitButton">Send message</button>
    </div>

</form>

php 脚本:

<?php
$field_name = $_POST['nameInput'];
$field_email = $_POST['mailInput'];
$field_message = $_POST['messageInput'];

$mail_to = 'removed for safety';
$subject = 'Message from a site visitor '.$field_name;

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;

$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        alert('Thank you for the message. We will contact you shortly.');
        window.location = 'contact.html';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('Message failed. Please, send an email to');
        window.location = 'contact.html';
    </script>
<?php
}
?>

【问题讨论】:

  • 将错误粘贴为文本,而不是图像。
  • 看起来像本地主机,所以除非你碰巧有一个本地邮件服务器,否则你需要使用外部的。
  • 看起来您没有运行邮件服务器。一旦您将站点上传到 Web 服务器,或者在您的计算机上安装邮件服务器,这将得到解决。要防止出现该错误消息,您可以键入@mail,这不会解决错误,但会阻止它打印该错误消息。
  • 所以没有错误,只是因为它必须在托管面板中才能工作?所以我不必关心它所犯的错误,它会在托管面板上工作吗?

标签: php html forms email


【解决方案1】:

错误是抱怨您试图通过不存在的本地 SMTP 服务器发送电子邮件。如果您正在运行自己的 SMTP 服务器,则修复服务器,或者如果您没有,则需要使用 ini_set() 将 PHP 指向 SMTP 服务器,或者在调用 mail() 之前按照错误消息中的指示编辑 php.ini。

例如:

ini_set("SMTP", "mail.example.com");
ini_set("sendmail_from", "test@example.com");
ini_set("smtp_port", "25"); 

【讨论】:

    【解决方案2】:

    如果此站点托管在您自己的服务器上,您需要下载 SendEmail 或 Mercury 才能在您的本地计算机上发送/接收电子邮件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多