Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mateus P.

Com enviar um e-mail do postresql localmente para um e-mail do gmail

Recommended Posts

Habilite todas as exibições de erro, como mostrado neste tópico

Se fizer isso, verá as mensagens de erro. Seu script tem erro já no começo, aqui:

$nome = POST_('nome');

O certo é:

$nome = $_POST['nome'];

Mais informações:

http://php.net/manual/pt_BR/language.types.array.php

http://php.net/manual/pt_BR/language.variables.php

http://php.net/manual/pt_BR/reserved.variables.post.php

http://php.net/manual/pt_BR/tutorial.forms.php

Ok vou fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Habilite todas as exibições de erro, como mostrado neste tópico

Se fizer isso, verá as mensagens de erro. Seu script tem erro já no começo, aqui:

$nome = POST_('nome');

O certo é:

$nome = $_POST['nome'];

Mais informações:

http://php.net/manual/pt_BR/language.types.array.php

http://php.net/manual/pt_BR/language.variables.php

http://php.net/manual/pt_BR/reserved.variables.post.php

http://php.net/manual/pt_BR/tutorial.forms.php

Continua em branco sem enviar o e-mail está assim agora bah preciso desse contato fiz todos passos que citei na descrição ali da pergunta.

 

 

 

<?php
require "phpmailer/class.phpmailer.php";
//recebe as variaveis
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];
//arquivos inclusos na pasta phpmailer
//inicando a classe phpmailer
$mail= new PHPMailer();
$mail->IsSMTP();
$mail->Host ="smtp.gmail.com";
$port= 587;
$mail->SMTPAuth = true;
$mail->Username = 'meuemail@gmail.com';
$mail->Password= '******';
$mail->SMTPSecure='tls';
//remetente
$mail->From = "meuemail@gmail.com";
$mail->FromName = "Admin";
//destinatário
$mail->AddAddress($email, $nome);
$mail->AddCC('meuemail@gmail.com');
//dados da mensagem que conterá dados em html
$mail->IsHTML(true);
//Texto e assunto e-mail
$mail->Subject = "Mensagem do site";
$mail->Body = $mensagem;
//Envia e-mail
$enviado = $mail->Send();
//mensagem de resultado
if($enviado){
echo "E-mail enviado com sucesso!";
}else{
echo "Não foi possível enviar o e-mail!";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pus um código que o Beraldo, deu exemplo coloquei acima do código

ini_set( 'display_errors', true );
error_reporting( E_ALL );

 

Dai apareceu esse erro :

 

Fatal error: Class 'SMTP' not found in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\phpmailer\class.phpmailer.php on line 1235

 

Então está dando erro ali na classe SMTP not found q não existe ou sei lá. Se eu tirar o class.phpmailer.php tirar o .php parece que ia ir mais não vai fica tudo em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pus um código que o Beraldo, deu exemplo coloquei acima do código

ini_set( 'display_errors', true );
error_reporting( E_ALL );

 

Dai apareceu esse erro :

 

Fatal error: Class 'SMTP' not found in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\phpmailer\class.phpmailer.php on line 1235

Desde o começo estou te pedindo pra habilitar os erros...

 

 

A classe SMTP é do PHPMailer. Ela está definida no arquivo class.smtp.php. Verifique se esse arquivo está na mesma pasta que o class.phpmailer.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desde o começo estou te pedindo pra habilitar os erros...

 

 

A classe SMTP é do PHPMailer. Ela está definida no arquivo class.smtp.php. Verifique se esse arquivo está na mesma pasta que o class.phpmailer.php

Beraldo estão sim na mesma página, por isso que não entendo o erro.

Coloquei

require_once('phpmailer/PHPMailerAutoload.php');
apareceu assim

Notice: Undefined index: nome in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\enviar_email.php on line 9

 

Notice: Undefined index: email in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\enviar_email.php on line 10

 

Notice: Undefined index: mensagem in C:\Program Files\PostgreSQL\EnterpriseDB-ApachePHP\apache\www\portal\contato\enviar_email.php on line 11

Não foi possível enviar o e-mail!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, agora não da erro fica carregando ou fica tudo em branco quando chama php e agora não sei onde está o erro, precisava resolver isso hoje ainda.

 

Veja como está o código:

 

 

<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );
require_once('phpmailer/PHPMailerAutoload.php');
//recebe as variaveis
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];
//arquivos inclusos na pasta phpmailer
//inicando a classe phpmailer
$mail= new PHPMailer();
$mail->IsSMTP();
$mail->Host ="smtp.gmail.com";
$port= "587";
$mail->SMTPAuth = true;
$mail->Username = "meuemail@gmail.com";
$mail->Password= "********";
$mail->SMTPSecure="tls";
//remetente
$mail->From = "meuemail@gmail.com";
$mail->FromName = "Admin";
//destinatário
$mail->AddAddress($email, $nome);
$mail->AddCC("meuemail@gmail.com");
//dados da mensagem que conterá dados em html
$mail->IsHTML(true);
//Texto e assunto e-mail
$mail->Subject = "Mensagem do site";
$mail->Body = $mensagem;
//Envia e-mail
$enviado = $mail->Send();
//mensagem de resultado
if($enviado){
echo "E-mail enviado com sucesso!";
}else{
echo "Não foi possível enviar o e-mail!";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Logo abaixo esta linha:

$mail->SMTPSecure="tls";

Adicione esta:

$mail->SMTPDebug = 2;

Isso ativa o debug da conexão SMTP. Nas mensagens você poderá ver se houve falha na conexão

Coloquei e quando envia não aparece nada e não envia só fica uma tela branca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Detalhe, agora para usar GMail tem que ativar para outros apps menos seguro.

 

https://security.google.com/settings/security/activity

 

Fqk4yKU.png

 

Para liberar a porta!

Oi consegui enviar e-mail mais fica um monte de coisa na tela ao inves de aparecer e-mail enviado como apagar isso:

 

 

2015-06-27 16:04:10 SERVER -> CLIENT: 220 mx.google.com ESMTP q4sm8769915qkq.33 - gsmtp 2015-06-27 16:04:10 CLIENT -> SERVER: EHLO localhost 2015-06-27 16:04:10 SERVER -> CLIENT: 250-mx.google.com at your service, [177.2.162.252] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250 SMTPUTF8 2015-06-27 16:04:10 CLIENT -> SERVER: STARTTLS 2015-06-27 16:04:11 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS 2015-06-27 16:04:13 CLIENT -> SERVER: EHLO localhost 2015-06-27 16:04:14 SERVER -> CLIENT: 250-mx.google.com at your service, [177.2.162.252] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN XOAUTH 250-

E-mail enviado sucesso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi consegui enviar e-mail mais fica um monte de coisa na tela ao inves de aparecer e-mail enviado como apagar isso:

 

 

2015-06-27 16:04:10 SERVER -> CLIENT: 220 mx.google.com ESMTP q4sm8769915qkq.33 - gsmtp 2015-06-27 16:04:10 CLIENT -> SERVER: EHLO localhost 2015-06-27 16:04:10 SERVER -> CLIENT: 250-mx.google.com at your service, [177.2.162.252] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250 SMTPUTF8 2015-06-27 16:04:10 CLIENT -> SERVER: STARTTLS 2015-06-27 16:04:11 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS 2015-06-27 16:04:13 CLIENT -> SERVER: EHLO localhost 2015-06-27 16:04:14 SERVER -> CLIENT: 250-mx.google.com at your service, [177.2.162.252] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN XOAUTH 250-

E-mail enviado sucesso

 

Está enviando mas está aparecendo esse monte de coisas acima quero apagar isso, como corrigir e outra coisa quando a pessoa preenche o formulário e coloca seu e-mail para enviar uma mensagem para mim, ao inves, de eu receber fica como se eu tivesse enviado a mensagem para o endereço preenchido em e-mail. Tem que a pessoa colocar e-mail dela e eu receber como corrigir isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

remova ou altere o debug para o valor zero

  1. $mail->SMTPDebug = 0;

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

remova ou altere o debug para o valor zero

  1. $mail->SMTPDebug = 0;

 

Ok resolveu o debug está dando informações do servidor SMTP.

Agora como faço para o e-mail que é digitado ali enviar para mim não eu enviar para pessoa que inseriu seu e-mail no formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui acostumamos ajudar, mas o cara tem que fazer o dever de casa, ler a documentação, se não quer ler, procure por um(a) Q&A

Com certeza apenas pedi um auxilio. Pois li essa documentação e estudei muito todo dia para fazer meus trabalhos pedi ajuda aqui porque essa é a primeira vez que utilizo phpMailer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui acostumamos ajudar, mas o cara tem que fazer o dever de casa, ler a documentação, se não quer ler, procure por um(a) Q&A

Ok refis tudo e consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.