Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
>
Esse script de teste posta normalmente, mas não envia a mensagem prevista em mail(), embora o PHP do servidor esteja habilitado para tanto.
Por favor, amigos, onde estou errando? Pode até ser um erro simples, porque sou iniciante.
Agradeço desde já pelo apoio!
Feliz Ano Novo a todos!
<?php
session_start();
if (isset($_POST['enviar'])) {
$email = $_POST['email'];
if($email == ''){
echo "Putz! Deu erro!";
}else{
echo $email;
}
}
if($email == 'TRUE'){
mail("$email", "Teste!", "Se recebeu, funcionou. Oba!", "From: <xxx@yyy.net>\n\n");
}
?>
<form name="enviar" action="" method="post" enctype="multipart/form-data">
<input name="email" type="text" size="20"/>
<input type="submit" name="enviar" value="Enviar" class="meuBotao" /></form>>
Já que você disse PHP do servidor, então posso descartar ambiente Windows onde mail() é mais nojento de se configurar.
Bom, habilite os erros e veja se alguma coisa é mostrada:
ini_set( 'display_errors', TRUE );
error_reporting( E_ALL | E_STRICT ); // Apenas PHP 5.3.X
error_reporting( E_ALL ); // Todas as outras versões
Bruno, ficou assim. Mas não indicou erro.
<?php
session_start();
if (isset($_POST['enviar'])) {
$email = $_POST['email'];
if($email == ''){
echo "Putz! Deu erro!";
}else{
echo $email;
}
}
if($email == 'TRUE'){
mail("$email", "Teste!", "Se recebeu, funcionou. Oba!", "From: <xxx@yyy.net>\n\n");
ini_set( 'display_errors', TRUE );
error_reporting( E_ALL | E_STRICT ); // Apenas PHP 5.3.X
error_reporting( E_ALL ); // Todas as outras versões
}
?>
<form name="enviar" action="" method="post" enctype="multipart/form-data">
<input name="email" type="text" size="20"/>
<input type="submit" name="enviar" value="Enviar" class="meuBotao" /></form>Você testou em vários e-mails de sites diferentes? Porque tem alguns e-mails que não recebem mensagens automáticas, pra evitar spam.
>
Você testou em vários e-mails de sites diferentes? Porque tem alguns e-mails que não recebem mensagens automáticas, pra evitar spam.
>
Sim, testei com três domínios, enviando para diferentes e-mails. Nada. Não dá erro algum. Aparentemente envia, mas não chega nada!
Mas MuitoCurioso, se você ativar os erros DEPOIS da função mail(), todo e qualquer erro que ela produzir poderá e será ocultado.
SEMRE, durante desenvolvimento, inicie o arquivo com esse código.
E poxa, você leu os comentários em frente ao error_reporting()? Ou é um, ou é outra, de acordo com a versão do seu PHP.
Solucionado.
O problema era no servidor (Locaweb).
Para funcionar, lá, é preciso colocar
-f
antes do e-mail rementente.
Obrigadão!
Já que você disse PHP do servidor, então posso descartar ambiente Windows onde mail() é mais nojento de se configurar.
Bom, habilite os erros e veja se alguma coisa é mostrada:
ini_set( 'display_errors', TRUE );
error_reporting( E_ALL | E_STRICT ); // Apenas PHP 5.3.X
error_reporting( E_ALL ); // Todas as outras versões