Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

phpmailer

23-06-2016 15:18

Boa tarde , a minha duvida é bastante simples de entender, contudo a solução não é assim tão facil de resolver,vamos lá:

criei uma pagina para enviar email com a classe PHPMAILER , com o objectivo de quando se envia um email, o remetente recebe uma resposta automatica....e é aqui que está a grande duvida!

Se usando esta classe, para evitar que os emailS caem na caixa de spam,usando para isso a autenticação smtp...o que resulta muito bem uma vez que definimos:

$mail->Password = 'senha do email'; // PASSWORD DA CONTA DE E-MAIL !
$mail->Username = 'email'; //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S !

já na resposta automatica isso torna-se uma tarefa impossivel,pois no meu caso , no campo $_post['email'] , podemos captar o email para onde vai ser direcionada a resposta automatica....; mas no campo em que teremos de inserir a senha desse email já nao conseguimos inserir, pois nao sabemos a senha desse memo email, certo?

com este script, consegui de facto enviar email para onde queria , so que receber a resposta automatica já nao resulta, pois teria de saber a senha desse email:

$mail->Password = 'senha do email'; // PASSWORD DA CONTA DE E-MAIL !

require_once('../phpmailer/class.phpmailer.php'); require_once('../phpmailer/class.smtp.php'); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->Host = 'smtp.gmail.com'; $mail->Password = '******'; $mail->Username = 'joaonunofz@gmail.com'; $mail->FromName = "Site"; $mail->ADDReplyto($email); $mail->IsHTML(true); $mail->CharSet = 'utf-8'; $mail->AddAddress($email_ADMINISTRADOR); $mail->Subject = $assunto; $mail->Body = $mensagem; $mail->Send();// Envia o e-mail $mail->ClearAllRecipients(); echo 'MENSAGEM ENVIADA' //---------------------------RESPOSTA AUTOMATICA-------------------------------------------------------- require_once('../phpmailer/class.phpmailer.php');// Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer require_once('../phpmailer/class.smtp.php'); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->Host = 'smtp.gmail.com'; $mail->Password = '[b]????????[/b]'; [b]<-OQUE PONHO AQUI???SENAO PUZER NADA NUNCA RECEBO A RESPOSTA AUTOMATICA...[/b] :( $mail->Username = $email; //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S VINDO DA VARIAVEL $EMAIL! ... DAQUI PRA FRENTE SEI O CODIGO....

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: phpmailer

23-06-2016 15:53

Se você está querendo que um usuário do seu site receba uma mensagem de confirmação quando enviar um e-mail para sua conta do gmail, por exemplo:

O lá visitante, recebi sua mensagem de e-mail. Ass.: joaonunofz

Você deve seguir esse tutorial http://www.techtudo.com.br/dicas-e-tuto ... gmail.html

Agora se você quer que quando o visitante do seu site clicar em responder um e-mail que recebeu de você ele envie para uma conta de e-mail específica sua, você deve adicionar a sua classe essa linha:

$mail->addReplyTo('info@example.com', 'Information');

https://github.com/PHPMailer/PHPMailer
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: phpmailer

23-06-2016 16:07

hummm...você não entendeu....eu estou criando um site com um form de contato.....
o utilizador me envia um email desse form e ao mesmo tempo recebera uma resposta automatica....
eu recebo o eamil de la enviado porque defini no codigo php:

$mail->Password = '******';
$mail->Username = 'joaonunofz@gmail.com';

...ja para a resposta automatica consigo de facto definir o:
$mail->Username = ' $email ';
$mail->Password = '?'; <_ nao envia a resposta automatica pois nao sei a senha do email dele....
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: phpmailer

23-06-2016 16:58

No e-mail de auto resposta você tem que usar os seus próprios dados de SMTP. Isso porque o e-mail que vai para o usuário vai partir da sua conta do GMAIL. Você tem que usar a classe phpmailer para reenviar outro e-mail quando o envio do primeiro e-mail for feito com sucesso.

Então o que você teria que fazer é enviar 2 e-mails.
Um será o e-mail que você recebe do usuário. O outro e-mail recebe o usuário, confirmando que o e-mail dele foi recebido por você.

Se for isso você precisa fazer o seguinte:

No script do phpmailer original tem essa linha de confirmação de envio do e-mail:

if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; // ADICIONAL }

Veja no código acima que deixei uma linha comentada escrito ADICIONAL.

Veja no seu código a linha que corresponde acima. E na mesma posição onde está o ADICIONAL adicione logo abaixo o seguinte:

// AUTO MENSAGEM $mail2 = new PHPMailer; $mail2->isSMTP(); // Set mailer to use SMTP $mail2->Host = 'smtp....'; // Specify main and backup SMTP servers $mail2->SMTPAuth = true; // Enable SMTP authentication $mail2->Username = '....'; // SMTP username $mail2->Password = '....'; // SMTP password $mail2->Port = 587; $mail2->setFrom('vc@vc.com', 'seu nome'); $mail2->addAddress('para@para.com', 'fulano tal'); $mail2->isHTML(true); // Set email format to HTML $mail2->Subject = 'Mensagem recebida'; $mail2->Body = 'Recebi sua mensagem, respondo em breve.'; $mail2->AltBody = 'Recebi sua mensagem, respondo em breve.'; if($mail2->send()){ // REDIRECIONA SE NECESSÁRIO // header('Location: obrigado.php'); }

É só alterar SMTP, email, assunto, etc.

Obs.: A mensagem do primeiro envio não pode redirecionar o usuário, se não não vai chegar na parte do e-mail de confirmação de recebimento.
1
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: phpmailer

23-06-2016 17:48

ok...fiz assim.....mas so recebo o email enviado para o administrador...o de auto-resposta nao me é enviado...!

...
$mail->Password = 'minha_senha'; // PASSWORD DA MINHA CONTA DE E-MAIL !
$mail->Username = $email_ADMINISTRADOR; //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S :ADMINISTRADOR!
...
$mail->AddAddress($email_ADMINISTRADOR);


// AUTO_RESPOSTA

...
$mail_2->Password = 'minha_senha'; // VOLTEI A REPETIR A SENHA EM CIMA !
$mail_2->Username = $email_ADMINISTRADOR; //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S DE AUTO-RESPOSTA!
...
$mail_2->AddAddress($email); // EMAIL DO REMETENTE
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: phpmailer

23-06-2016 17:50

Pode postar o código todo?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: phpmailer

23-06-2016 17:54


<?php //ligar a base de dados require '../Ligar BaseDados/Ligacao_BaseDados.php'; //variaveis do form e-mail... $email = $_POST['email']; $assunto = $_POST['assunto']; $mensagem = $_POST['mensagem']; //query para saber qual o e-mail a enviar $consulta_email = $ligacao->query("SELECT * FROM utilizadores WHERE nivel_utilizador = 'ADMINISTRADOR' "); $mostrar = mysqli_fetch_array($consulta_email); $email_ADMINISTRADOR = $mostrar['email_utilizador']; //possiveis erros //Validar e-mail if(!filter_var($email,FILTER_VALIDATE_EMAIL)) { echo '<div id="aviso_erro"> <span class="glyphicon glyphicon-exclamation-sign"></span> Formato de e-mail invalido! </div>'; } else if(strlen($assunto) < 3) { echo '<div id="aviso_erro"> <span class="glyphicon glyphicon-exclamation-sign"></span> Assunto muito curto! </div>'; } else if(strlen($mensagem) < 10) { echo '<div id="aviso_erro"> <span class="glyphicon glyphicon-exclamation-sign"></span> Mensagem muito curta! </div>'; } else { // CLASSE PHPMAILER require_once('../phpmailer/class.phpmailer.php');// Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer require_once('../phpmailer/class.smtp.php'); $mail = new PHPMailer();// Inicia a classe PHPMailer $mail->IsSMTP(); // Define que a mensagem será SMTP ! $mail->SMTPAuth = true; //ATIVA O SMTP AUTENTICADO ! $mail->Host = 'smtp.gmail.com'; // Endereço do servidor SMTP [SMTP SERVER] ! $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 587; // TCP port to connect to //$mail->SMTPDebug = 3; // enables SMTP DEBUG information (for testing) ! //DADOS DA CONTA DE E-MAIL QUE VAI SERVIR PARA RECEBER E ENVIAR OS E-MAIL´S $mail->Password = '11111'; // PASSWORD DA CONTA DE E-MAIL ! $mail->Username = $email_ADMINISTRADOR; //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S ! $mail->FromName = "Site"; // DE ONDE FOI ENVIADO O E-MAIL! $mail->ADDReplyto($email); // E-MAIL DO REMETENTE PARA POSTERIORMENTE PODER-SE RESPONDER! // Define os dados técnicos da Mensagem $mail->IsHTML(true); // Define que o e-mail será enviado como HTML já formatado ! $mail->CharSet = 'utf-8'; // Charset da mensagem (opcional) // definir o destinatario , assunto e mensagem $mail->AddAddress($email_ADMINISTRADOR); //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S ,OBS: ENTRE () ! $mail->Subject = $assunto;//assunto do email ! $mail->Body = $mensagem; //texto do email ! $mail->Send();// Envia o e-mail $mail->ClearAllRecipients();// Limpa os destinatários echo '<div class="alert alert-success"> <span class="glyphicon glyphicon-ok"></span> <strong> E-mail enviado com sucesso, verifique a sua caixa de SPAM! </strong> </div>'; //-------------------------- AUTO RESPOSTA -------------------------------- $mail2 = new PHPMailer();// Inicia a classe PHPMailer // definir os dados do servidor e o tipo de conexão $mail2->IsSMTP(); // Define que a mensagem será SMTP ! $mail2->SMTPAuth = true; //ATIVA O SMTP AUTENTICADO ! $mail2->Host = 'smtp.gmail.com'; // Endereço do servidor SMTP [SMTP SERVER] ! $mail2->Password = '11111'; // PASSWORD DA CONTA DE E-MAIL ! $mail2->Username = $email_ADMINISTRADOR; //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S ! $mail2->SetFrom ('SITE@gmail.com' , 'Site'); // DE ONDE FOI ENVIADO O E-MAIL! // Define os dados técnicos da Mensagem $mail2->IsHTML(true); // Define que o e-mail será enviado como HTML já formatado ! $mail2->CharSet = 'utf-8'; // Charset da mensagem (opcional) // definir o destinatario , assunto e mensagem $mail2->AddAddress($email); //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S ,OBS: ENTRE () ! $mail2->Subject = 'Obrigado pelo seu contato!';//assunto do email ! $mail2->Body = '<p> Recebemos o seu email, <br> seremos breves em responder á sua questão ! <br> Até logo. </p>'; //texto do email ! $mail2->AltBody = 'Recebi sua mensagem, respondo em breve.'; $mail->Send();// Envia o e-mail $mail->ClearAllRecipients();// Limpa os destinatários } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: phpmailer

23-06-2016 18:04

Você não usou o $mail2 para fazer o envio.

$mail->Send();// Envia o e-mail

Veja se é isso.
1
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: phpmailer

23-06-2016 18:08

BINGO, ERA ISSO !!! :)
JA FIQUEI ESCLARECIDO, WEB, MUITO OBRIGADO, SOU AUTO-DIDATA E TUDO O QUE APRENDO É NO GOOGLE E TIRANDO AS DUVIDAS NESTE FORUM, MUITO OBRIGADO PELA SUA PACIENCIA!
1
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: phpmailer

24-06-2016 16:02

Uma questão WEB...eu ponho este trecho de código para confirmar de que realmente o e-mail é enviado....ele de facto é enviado, tanto que faço o teste para o meu e-mail e eu recebo-o...mas no form aparece como :

ERRO AO ENVIAR
Mailer Error: You must provide at least one recipient email address.


Ora...isto não devia acontecer...pois o e-mail é enviado...e eu recebo-o...como é possível isto???
para nao me aparecer este aviso de erro tenho-o que apagar...mas isto nao se compreende...o que nao está bem?

if(!$mail->send())
{
$aviso = ' Erro ao enviar ! ';


echo 'Mailer Error: ' . $mail->ErrorInfo;

}

else

{
echo ' E-mail enviado com sucesso ! ';


}
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: phpmailer

24-06-2016 16:13

Creio que é referente a quem recebe o e-mail.

$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient

Já observou se não está indo vazio essa linha?

Pleo que observei seu código está pegando o e-mail de quem recebe dessa forma:

$mail->AddAddress($email_ADMINISTRADOR); //EMAIL PARA ONDE VÃO SER ENVIADOS OS E-MAIL´S ,OBS: ENTRE () !

Pode estar acontecendo do e-mail alguma vez não chegar a ser imprimido, ou, você pode fazer um teste passando o segundo valor, que seria o nome do administrador em addAddress.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: phpmailer

24-06-2016 17:52

...olhe o meu codigo...nao creio faltar nada....

require_once('../phpmailer/class.phpmailer.php');
require_once('../phpmailer/class.smtp.php');

$mail = new PHPMailer();

$mail->IsHTML(true);
$mail->CharSet = 'utf-8';
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.gmail.com';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->Password = ' 111 ';
$mail->Username = ' joaonunofz@gmail.com ';


$mail->setFrom ('site@gmail.com' , 'Site');
$mail->AddAddress('joaonunofz@gmail.com' , 'ADMINISTRADOR');
$mail->addAddress('joaonunofz@gmail.com');
$mail->addCC('joaonunofz@gmail.com');
$mail->addBCC('joaonunofz@gmail.com');
$mail->ADDReplyto($email);


$mail->Subject = $assunto;
$mail->Body = $mensagem;
$mail->AltBody = $mensagem;

$mail->Send();

$mail->ClearAllRecipients();
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: phpmailer  #resolvido

24-06-2016 18:58

...bom ja fui ao phpmailer ver a documentação...fiz todas as alterações iguais á da documentação e não alterou nada... como sei que o email é enviado bem, tirei a mensagem de erro, e deixei apenas a da confirmação de envio , valeu o esforço WEB !
OBRIGADO NA MESMA IRMÃO!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: phpmailer

24-06-2016 19:00

Estive observando aqui no código original do phpmailer e variável do e-mail começa com letra minúscula.

$mail->addAddress('ellen@example.com');

Veja se não é isso. Por que no seu código está AddAddress
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: phpmailer

24-06-2016 19:37

...não...tambem nao era, ja tentei de tudo...mas não... bom o que interessaé que funciona deixa para lá e obrigado mais uma vez web :)
1

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado