我一直在使用php邮件表格已有一段时间了,现在它还没有在新网站上运行。
以下错误结果:
PHP警告:mail()[function.mail]:未在php.ini中设置“sendmail_from”或在第16行的E:\ home \ -mypagefoldername- \ Web \ form.php中缺少自定义“From:”标头
这是form.php文件中的php代码:
<?
$mensagem = "Nome: ".$_POST['nome']." \n";
//email que o usuário preencheu
$mensagem .= "Email: ".$_POST['email']." \n";
$mensagem .= "Assunto: ".$_POST['assunto']." \n";
$mensagem .= "Telefone: ".$_POST['fone']." \n";
$mensagem .= "Endereço: ". $_POST['mensagem'];
$headers = "";
//email do seu domínio hospedado
$emailsender = "email@mydomain.com";
//email de quem vai receber
$emaildestinatario = "email@mydomain.com";
$assunto = "Mensagem do Parceiro Pipa";
// Envio dos dados do Formulário para seu e-mail:
if(!mail($emaildestinatario, $assunto, $mensagem, $headers ,"-r".$emailsender))
{
// Se for Postfix - hospedagem linux
$headers .= "Return-Path: " . $emailsender . $quebra_linha;
}
echo '
<script type="text/JavaScript">
alert("Email sent! Thank you!");
location.href="index.html"
</script>
';
?>
对葡萄牙语感到抱歉。
表单页面是一个简单的html页面,其中包含以下表单代码:
<form method="post" action="form.php">
<label>Nome</label>
<input name="nome" placeholder="Nome completo.">
<label>Telefone</label>
<input name="fone" placeholder="Número de telefone com DDD.">
<label>Assunto</label>
<input name="assunto" placeholder="Qual o motivo do seu contato?">
<label>Mensagem</label>
<textarea name="mensagem" placeholder="Escreva aqui sua mensagem."></textarea>
<label>Email</label>
<input name="email" type="email" placeholder="Email para contato.">
<input id="submit" name="submit" type="submit" value="Enviar">
</form>
有人可以帮帮我吗? = /
感谢您的耐心等待!
答案 0 :(得分:0)
正如它所说,您可能错过了From:
变量中的$headers
声明!
<?php
$From = "YourEmailAddress@example.com";
$headers .= "From: Your Name <". $From .">\n";
?>
靠近$headers
字符串的顶部。虽然为了将来参考,你可能想看看PHPMailer Class,一个非常好的&amp;有效处理PHP mail
的安全类。
答案 1 :(得分:0)
您没有设置 From 标头,导致该问题,完全按照以下文档中的说明进行。
注意:
发送邮件时,邮件必须包含From标头。这可以 使用additional_headers参数设置,或者可以设置默认值 php.ini中。
如果不这样做,将导致类似于警告的错误消息: mail():“sendmail_from”未在php.ini中设置或自定义“From:”标题 失踪。 From标头还设置了Windows下的Return-Path。
来自http://php.net/manual/en/function.mail.php
在您的情况下,您应该使用;
$headers = "From: webmaster@example.com" . "\r\n";
答案 2 :(得分:0)
请更改php.ini文件中的以下设置
要启用电子邮件,您应该取消注释以下行或在行的开头删除分号
;sendmail_from =
并将此设置更改为此示例(如果是localhost)
sendmail_from = localhost@localhost
如果您在生产服务器上,则必须根据您的域更改默认地址,因此administrator@domain.com