Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

mcosta78

Problema com recepção de email de um formulário

Mensagens Recomendadas

mcosta78

Boa noite pessoal,

 

tenho um problema com o PHP. Tenho uma página em  html e preciso de fazer um formulário (que já tenho) e coloquei um botão enviar.

De forma ao php funcionar instalei o xampp e coloquei o ficheiro php o problema é que dá sempre erro!!

o código que tenho é:

 

<?
# alterar a variavel abaixo colocando o seu email

$destinatario = "seuemail@seudominio.com.br";

$nome = $_REQUEST['nome'];
$email = $_REQUEST['email'];
$mensagem = $_REQUEST['mensagem'];
$assunto = $_REQUEST['assunto'];

 // monta o e-mail na variavel $body

$body = "===================================" . "\n";
$body = $body . "FALE CONOSCO - TESTE COMPROVATIVO" . "\n";
$body = $body . "===================================" . "\n\n";
$body = $body . "Nome: " . $nome . "\n";
$body = $body . "Email: " . $email . "\n";
$body = $body . "Mensagem: " . $mensagem . "\n\n";
$body = $body . "===================================" . "\n";

// envia o email
mail("meuemail@gmail.com", $assunto , $body, "From: $email\r\n");        //aqui coloco o meu email

// redireciona para a página de obrigado
header("location:obrigado.htm");


?>

 

Alguém me sabe dizer qual o problema?

 

obrigado.
 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mcosta78

Peço desculpa por  ter colocado aqui o post. 

Se o administrador puder retirar agradecia.

 

Cumprimentos.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Tens de dizer qual é o erro que tens, caso contrário ninguém te vai conseguir ajudar.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mcosta78

Obrigado M6!

 

o erro é o seguinte:

 

Objeto não encontrado!

A URL requisitada não foi encontrada neste servidor. O link na página referida parece estar com algum erro ou desatualizado. Por favor informe o autor desta página sobre o erro.

Se você acredita ter encontrado um problema no servidor, por favor entre em contato com o webmaster.

Error 404

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Mikev

Pelo erro que diz é muito explicito. "URL requisitada não foi encontrada neste servidor."

Vê se não tens o ficheiro php dentro de uma pasta o que te faz mudar o url para chegar a ele. 

Vê também se tens os ficheiros todos com os nomes corretos de forma a "existirem".

Vê também se tens o projeto dentro da pasta do xamp.

Abraço!


C# 😍

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mcosta78

Obrigado pela resposta..

 

pois, eu tenho um formulárione  e quando carrego chama o ficheiro php que coloquei no inicio do post.

 

Os ficheiros estão dentro do xampp na pasta htdocs.

tem os nomes corretos mas o erro continua..

não percebo.,

Abraço.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Um 404 quer dizer que o URL que estás a invocar não existe no servido. Se estiveres em ambiente Linux/Mac OS X (ou semelhantes) tem atenção aos nomes dos ficheiros e diretórios pois são case sensitve.

Vê os logs do Apache para perceberes qual o URL que estás a invocar para perceberes o que se passa.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mcosta78

Obrigado M6.

 

Foi ver os logs do apache e o erro que dá é:

 

[Thu Feb 14 14:03:44.024704 2019] [:error] [pid 3320:tid 1604] [client 127.0.0.1:51195] PHP Warning:  mail(): &quot;sendmail_from&quot; not set in php.ini or custom &quot;From:&quot; header missing in C:\\xampp\\htdocs\\enviar.php on line 15, referer: http://127.0.0.1/form.html

 

mas não percebo o problema!!

 

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Cerzedelo

Não estarão a faltar headers no envio do email.

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?> 

Em segundo lugar, o mail() parece não  funcionar num servidor local.

Em alternativa, pode utilizar o phpmailer.

 

 

 

Editado por Cerzedelo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Já fizeste o que o erro diz quanto a consultares o php.ini?
Parece-me que o sendmail_from não deve estar definido.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mcosta78

Boas pessoal, segui o conselho do M6 de utilizar a classe phpmailer.

 

agora o meu problema é: coloquei a classe phpmailer e dois ficheiros com o código abaixo:

 

envio.php:

<?php    
    $mail = new PHPMailer();
    $mail->IsSMTP(); 
    $mail->CharSet = 'UTF-8';
    $mail->True;
    $mail->Host = "smtp.gmail.com"; // SMTP servers
    $mail->SMTPSecure = "tls"; // conexão segura com TLS
    $mail->Port = 587; 
    $mail->SMTPAuth = true; // Caso o servidor SMTP precise de autenticação
    $mail->Username = "meu_email@gmail.com"; // SMTP username (aqui coloco meu email)
    $mail->Password = "minha_password"; // SMTP password (aqui coloco a pass)
    $mail->From = "jruisousa7@gmail.com"; // From
    $mail->FromName = "InVettor" ; // Nome de quem envia o email
    $mail->AddAddress($mailDestino, $nome); // Email e nome de quem receberá //Responder
    $mail->WordWrap = 50; // Definir quebra de linha
    $mail->IsHTML = true ; // Enviar como HTML
    $mail->Subject = $assunto ; // Assunto
    $mail->Body = '<br/>' . $mensagem . '<br/>' ; //Corpo da mensagem caso seja HTML
    $mail->AltBody = "$mensagem" ; //PlainText, para caso quem receber o email não aceite o corpo HTML

    if(!$mail->Send()) // Envia o email
    {    
        echo "Erro no envio da mensagem";
    }    
?>

Contacto.php:

<html lang="pt-br"> 
<head>
    <meta charset="utf-8">
    <title>inVettor | Hospedagem de sites, Revendas, SSL e Cloud.</title>
    <!--Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>

<body>
<div class="container">

    <?php 
        if ($_POST) 
        {
            //Carrega as classes do PHPMailer
            include("./phpmailer/class.phpmailer.php"); 
            include("./phpmailer/class.smtp.php"); 
            
            //envia o e-mail para o visitante do site
            $mailDestino = $_POST['txtEmail']; 
            $nome = $_POST['txtNome'];    
            $mensagem = "Obrigado pelo seu contato, responderemos ASAP!";
            $assunto = "Obrigado pelo seu contato!";
            include("./envio.php");
            
            //envia o e-mail para o administrador do site
            $mailDestino = 'jruisousa7@gmail.com'; 
            $nome = 'inVettor';    
            $assunto = "Mensagem recebida do site";
            $mensagem = "Recebemos uma mensagem no site <br/>
                        <strong>Nome:</strong> $_POST[txtNome]<br/>
                        <strong>e-mail:</strong> $_POST[txtEmail]<br/>
                        <strong>mensagem:</strong> $_POST[txtMensagem]";
            include("./envio.php");
            
            
        }
    ?>

    <form method="POST" name="formContato">

    <label>Informe seu nome: </label>
    <input type="text" name="txtNome" placeholder="João" class="form-control" required>


    <label>Informe seu e-mail: </label>
    <input type="email" name="txtEmail" placeholder="a@a.com" class="form-control"  required>


    <label>Deixe sua mensagem: </label>
    <textarea rows="6"  class="form-control" name="txtMensagem"></textarea>
    <br/>

    <div style="text-align:center">
        <button type="submit" class="btn btn-default btn-lg"> Enviar Mensagem </button>
    </div>
    
    </form>    
</div>
</body>
</html>

 

quando executo dá dois erros:

o primeiro é no ficheiro envio.php na linha  $mail->SMTPSecure = "tls"; // conexão segura com TLS

o erro é: Notice: Undefined property: PHPMailer::$True in C:\xampp\htdocs\envio.php on line 21
Erro no envio da mensagem.

 

e o segundo erro é no email do gmail recebo uma mensagem com tentativa de  inicio de sessão bloqueado etc etc..

como posso resolver este problema?

 

grato a todos.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mcosta78

os erros que dá no log do apache:

 

[Wed Feb 20 09:05:02.228594 2019] [:error] [pid 1892:tid 1672] [client 127.0.0.1:61401] PHP Notice:  Undefined property: PHPMailer::$True in C:\\xampp\\htdocs\\envio.php on line 21, referer: http://127.0.0.1/contato.php
[Wed Feb 20 09:05:03.066510 2019] [:error] [pid 1892:tid 1672] [client 127.0.0.1:61401] PHP Notice:  Undefined property: PHPMailer::$True in C:\\xampp\\htdocs\\envio.php on line 21, referer: http://127.0.0.1/contato.php
 

aguardo ajuda e obrigado.

Editado por mcosta78

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.