Jump to content
mcosta78

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

Recommended Posts

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.
 

Share this post


Link to post
Share on other sites
mcosta78

Peço desculpa por  ter colocado aqui o post. 

Se o administrador puder retirar agradecia.

 

Cumprimentos.

Share this post


Link to post
Share on other 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."

 

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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# 😍

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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."

 

Share this post


Link to post
Share on other 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!!

 

 

Share this post


Link to post
Share on other 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.

 

 

 

Edited by Cerzedelo

Share this post


Link to post
Share on other 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."

 

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Edited by mcosta78

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.