我正在尝试使用PHP发送电子邮件我使用这个表格:
<form class="pure-form pure-form-aligned" action="contact.php">
<fieldset>
<input type="Text" placeholder="Nome" name="Name">
<input type="email" placeholder="Email" name="email">
</fieldset>
<fieldset>
<button type="Reset" class="pure-button pure-button-primary">Limpar</button>
<button type="submit" class="pure-button pure-button-primary">Enviar</button>
</fieldset>
</form>
这个php代码
<?php
$headers = 'MIME-Version: 1.0' . "'r'n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n";
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$mail_to = 'nelson.maia@geralucros.com';
$subject = 'GeraRelax: '.$field_name;
$body_message = 'De: '.$field_name."'n";
$body_message .= 'E-mail: '.$field_email."'n";
$headers = 'De: '.$field_email."'r'n";
$headers .= 'Responder para: '.$field_email."'r'n";
$mail_status = @mail($mail_to, $subject, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Obrigado pela contacto.');
window.location = 'index.php';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('Envio falhado');
window.location = 'index.php';
</script>
<?php
}
?>
我以前用过,但现在不管用了。我猜这与服务器配置有关?有人能告诉我这件事吗?
您需要添加表单METHOD!
<form class="pure-form pure-form-aligned" action="contact.php" METHOD="POST">
也不见了。添加到标头。
$headers .= 'De: '.$field_email."'r'n";
此外,NOME中的类型应为NAME
<input type="Text" placeholder="Nome" name="Name">
变量名中的打字错误
$field_name = $_POST['name'];
$field_email = $_POST['Email'];
如果您查看PHP手册,您的问题是您错误地创建了mail
:http://php.net/manual/pt_BR/function.mail.php//http://php.net/manual/en/function.mail.php
您将看到mail($to, $usbject, $message, $headers);
和您的版本没有这样做,您的邮件项目中没有$message
值。
同时添加
error_reporting(E_ALL);
ini_set('display_errors', 1);
在代码顶部显示错误消息,这将为您提供更多关于电子邮件发送失败原因的反馈。并从您的邮件功能中删除@
,直到您确定它有效为止。
你应该有
error_reporting(E_ALL);
ini_set('display_errors', 1);
...
$mail_status = mail($mail_to, $subject, $body_message, $headers);
建议:
如果可能,请使用UTF-8字符集或UTF-16。
使用专用的Mailer扩展,如PHPMailer或Swift Mailer
在代码中添加错误跟踪(如示例所示),直到您确定它有效为止。
每天吃五种新鲜水果和蔬菜。
还从PHP邮件中注意到:
发送邮件时,邮件必须包含"发件人"标头。这可以是使用additional_headers参数设置,或者可以在中设置默认值php.ini.
否则将导致类似"警告"的错误消息:mail():"sendmail_from"未在php.ini或自定义"from:"标头中设置丢失的From标头还设置了Windows下的Return Path。
在此处添加表单方法:
<form class="pure-form pure-form-aligned" action="contact.php">
在此处添加提交按钮名称:
<button type="submit" name="submit" class="pure-button pure-button-primary">Enviar</button>
将php代码更改为:
<?php if(isset($_POST['submit'])){
// your code here..
.
.
.
// change the mail headers..
$headers .= 'De: '.$field_email."'r'n";
} ?>