Ir para conteúdo
Fórum Script Brasil
  • 0

Formulário em PHP


João Morsa

Pergunta

Olá galera,

Estou tentando criar um formulário de contato simples, que após preenchido enviará o conteúdo para um email.

Já tentei com vários códigos, e o erro retornado pelo servidor é o seguinte:

Warning: mail(): Failed to connect to mailserver at "localhost" port 25,

verify your "SMTP" and "smtp_port" setting in php.ini

Isso é um problema do servidor? Como posso resolver?

Ps.: Não existe esse arquivo php.ini no servidor.

Grato

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá,

A função mail() que eu uso é assim

mail("email@provedor.com.br", "$assunto","$mensagem","De:  $email\nContent-type: text/html\n");

--------

Acredito que o erro esteja ocorrendo porque ele precisa de um servidor pra funcionar... o localhost usado com apache e shamp não faz, ou melhor, acredito que não faça.

Editado por beuleal
Link para o comentário
Compartilhar em outros sites

  • 0

Beuleal, infelizmente não deu certo. O código que estou utilizando é o seguinte:

HTML:

<form action="enviar.php" method="POST">
                                <input type="hidden">
                                <!-- e-mail do destinatario -->
                                <center>
                                  
                            <table width="39%" border="0" align="center" cellspacing="0" cellpadding="0">
                              <tr> 
                                <td>Nome:<br> <input type="text" size="30" name="nome" value=""></td>
                              </tr>
                              <tr> 
                                <td>E-mail:<br>
                                  <input type="text" size="30" name="email" value=""></td>
                              </tr>
                              <tr> 
                                <td>Assunto:<br> <input type="text" size="30" name="assunto" value=""></td>
                              </tr>
                              <tr> 
                                <td>Mensagem:<br>
                                  <textarea cols="40" rows="10" name="mensagem"></textarea> 
                                </td>
                              </tr>
                              <tr> 
                                <td> <input name="submit" type="submit" value=" Enviar "> 
                                  &nbsp; <input name="reset" type="reset" value=" Limpar "></td>
                              </tr>
                            </table>
                                </center>
                              </form>
E o PHP:
<?
$nome      = $_POST["nome"];
$site     = $_POST["site"];
$email   = $_POST["email"];
$fone  = $_POST["fone"];
$assunto   = $_POST["assunto"];
$mensagem  = $_POST["mensagem"];

global $email; //função para validar a variável $email no script todo

$data      = date("d/m/y");                     //função para pegar a data de envio do e-mail
$ip        = $_SERVER['REMOTE_ADDR'];           //função para pegar o ip do usuário
$navegador = $_SERVER['HTTP_USER_AGENT'];       //função para pegar o navegador do visitante
$hora      = date("H:i");                       //para pegar a hora com a função date

//aqui envia o e-mail para você

mail("contato@j3meventos.com.br", "$assunto","$mensagem","De:  $email\nContent-type: text/html\n");

//aqui são as configurações para enviar o e-mail para o visitante
$site   = "seu@email.com";                    //o e-mail que aparecerá na caixa postal do visitante
$titulo = "Seu Título";                  //titulo da mensagem enviada para o visitante
$msg    = "$nome, obrigado por entrar em contato conosco, em breve entraremos em contato";

//aqui envia o e-mail de auto-resposta para o visitante
mail("$email",
     "$titulo",
     "$msg",
     "From: $site"
    );
echo "<p align=center>$nome, sua mensagem foi enviada com sucesso!</p>";
echo "<p align=center>Estaremos retornando em breve.</p>";
?>

E o erro que é retornado: PHP Warning: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set()

Nunca pensei que fosse tão difícil fazer um simples formulário...

Editado por João Morsa
Link para o comentário
Compartilhar em outros sites

  • 0

Mano é assim:

<?

$nome = $_POST["nome"];

$site = $_POST["site"];

$email = $_POST["email"];

$fone = $_POST["fone"];

$assunto = $_POST["assunto"];

$mensagem = $_POST["mensagem"];

$site_teste= "MANO AQUI VAI SER EMAIL";

global $email; //função para validar a variável $email no script todo

$data = date("d/m/y"); //função para pegar a data de envio do e-mail

$ip = $_SERVER['REMOTE_ADDR']; //função para pegar o ip do usuário

//aqui envia o e-mail para você

mail("$site_teste","$nome","\nNome: $nome\nEmail: $email\nSite: $site\nTelefone: $fone\nAssunto: $assunto\nMensagem: $mensagem");

echo "<p align=center>$nome, sua mensagem foi enviada com sucesso!</p>";

echo "<p align=center>Estaremos retornando em breve.</p>";

?>

Ai fera essas mensagens de auto-respostas são um sako....

e mano pensa comigo....assim que cair do seu email..já vai estar com data/hora e tudo mais...então pra que...?

Ferinha ta ae..espero ter ajudado!

Link para o comentário
Compartilhar em outros sites

  • 0

Não funciona porque você está testando no Windows.

O Windows não possui o Sendmail, que o PHP usa para fazer a função mail() funcionar.

Uma saída é instalar o fakesendmail, que você pode encontrar no Google, e que resolverá seu problema.

A configuração dele é simples, tem tudo no readme dele.

Provavelmente ao colocar seu arquivo em algum host, ele rodará sem problemas.

Link para o comentário
Compartilhar em outros sites

  • 0
Não funciona porque você está testando no Windows.

O Windows não possui o Sendmail, que o PHP usa para fazer a função mail() funcionar.

Uma saída é instalar o fakesendmail, que você pode encontrar no Google, e que resolverá seu problema.

A configuração dele é simples, tem tudo no readme dele.

Provavelmente ao colocar seu arquivo em algum host, ele rodará sem problemas.

Cara tudo bem?

Fiz o download do fakesendmail e alterei o endereço do smtp no arquivo sendmail.ini.

No read me, está escrito que eu preciso colar o sendmail.ini alterado e o sendmail.exe numa pasta chamada usr/lib. No meu host, não existe essa pasta. Aonde devo colar os arquivos do sendmail? na mesma pasta onde estão os outros arquivos do site? Se sim, devo alterar algum parâmetro no sendmail.ini?

Outra dúvida: é necessário referenciar o arquivo sendmail.ini no meu código php?

Segue em anexo outro código que estou utilizando:

HTML:

<html>
<body>
<form action="formulario.php" method="POST">
Seu Nome : <input type="text" name="nome"><br>
Seu E-mail : <input type="text" name="email"><br>
Comentários : <textarea name="comentarios"></textarea><br>
<input type="submit" value="Enviar">
</form> 
</body>
</html>
PHP:
<?

// Coloque a mensagem que irá ser enviada para seu e-mail abaixo:
$msg = "Mensagem enviada em ".date("d/m/Y").", os dados seguem abaixo: ";
while(list($campo, $valor) = each($HTTP_POST_VARS)) {
  $msg .= ucwords($campo).": ".$valor." ";
}

// Agora iremos fazer com que o PHP envie os dados do Formulário para seu e-mail: 
mail("contato@j3meventos.com.br", "Assunto do E-mail",$msg,"From: $REMOTE_ADDR");
echo "Seu e-mail foi enviado com sucesso. Obrigado";
?>

Valeu

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...