Ir para conteúdo

POWERED BY:

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

  Em 26/06/2015 at 17:08, Beraldo disse:

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
  Em 26/06/2015 at 17:08, Beraldo disse:

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
  Em 26/06/2015 at 19:28, Mateus P. disse:

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
  Em 26/06/2015 at 22:31, Beraldo disse:

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
  Em 26/06/2015 at 23:51, Beraldo disse:

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
  Em 27/06/2015 at 15:52, Williams Duarte disse:

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
  Em 27/06/2015 at 16:05, Mateus P. disse:

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
  Em 27/06/2015 at 16:43, Williams Duarte disse:

 

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
  Em 27/06/2015 at 19:28, Williams Duarte disse:

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
  Em 27/06/2015 at 19:28, Williams Duarte disse:

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.