我有一个带有电子邮件表单的脚本,然后我有一个.php脚本,它应该将表单中的输入发送到另一封电子邮件。问题是,当我提交表单时,我会收到以下错误:
警告:mail():无法连接到" 127.0.0.1"的邮件服务器端口25,验证您的" SMTP"和" smtp_port"在php.ini中设置或在第16行的C:\ Program Files(x86)\ EasyPHP-DevServer-14.1VC11 \ data \ localweb \ scripts \ supFormSend.php中使用ini_set()
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
}
?>
答案 0 :(得分:0)
错误是抱怨您尝试通过本地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");
答案 1 :(得分:0)
如果此站点托管在您自己的服务器上,则需要下载SendEmail或Mercury才能在本地主机上发送/接收电子邮件。