Ir para conteúdo

POWERED BY:

Arquivado

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

andrea cerqueira

registrar quem abriu e-mail

Recommended Posts

na verdade estou meio confusa com minhas ideias ainda e estou tentando arrumar um caminho, eu fiz um sistema de newsletter que envia o html feito online pra minha lista que está no bd, mas gostaria de saber quem abriu o email, então coloquei um <a href=\"http://www.site.com/index.php?' . $email_destinatario . '\"> no meio do meu while e isso manda pra cada email enviado o link do site com o e-mail do mesmo como parâmetro, se a pessoa entrar no link acho que daria pra saber quem acessou com um desses script de registro de clicks, mas na verdade eu quero saber quem abriu o e-mail pois nem sempre o e-mail terá link, então pensei em por um <img src=\"http://www.site.com/index.php?' . $email_destinatario . '\"> no meio do while e assim o endereço seria acessado automaticamente sem precisar clicar no link correto? na verdade não seria acessado mais sim chamado na hora de carregar a imagem e não carregaria nada, mas como eu conseguiria registrar isso pra ter um controle? eu tô totalmente perdida nos meu raciocínio, se alguém puder me dar uma ideia de por onde começar eu agradeço. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

então só rolaria se eu fizesse com um link mais o e-mail da pessoa como parâmetro né?e teria como eu incluir esse parâmetro automaticamente em todas as tags de link que existirem no meu e-mail?tb tem um problema que é o seguinte, o e-mail é obviamente feito antes de ser enviado e eu não conseguiria passar esse parametro pra dentro do codigo html que já está pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andréa, os dados vêm do BD, certo? Então o email do destinatário vem do BD, certo?Então você faz assim:

<img src=\"http://www.site.com/grava_views.php?email=$email_destinatario\" alt="" />
Onde $email_destinatario é o email que vem do BD.Na página grava_views.php, você recebe o email que está lendo do newsletter através da variável $_GET["email"] e faz a gravação num log de leituras, com data e hora, por exemplo.
pois é eu estava tentando assim, mas nada acontece, só consigo usando o <a href> e entrando no link dai o meu parâmetro é registrado no BD, mas como <img src> não rola pois tenho que entrar na página de click.

Compartilhar este post


Link para o post
Compartilhar em outros sites

teria jeito de voce saber o e-mail sim da pessoa pelo método de imagemassim q ela abrir o e-mail, a imagem vai estar com o endereço: <img src="http://seusite.com.br/imagem.php?email=blabla@teste.com.br" />na pagina imagem.php, voce registra q o e-mail abriu essa imagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andréa, eu utilizo o método que passei para você utilizando a classe PHPMailer. Funciona perfeitamente!

mmm eu vou ver como funciona o phpmailer então, mas o que você coloca na página do click é só um insert né? enfim, foi como eu disse funciona se eu abrir o link, vou ver o phpmailer e te falo.valeu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif ahhh valeu crucifier é dessa forma que tô tentando mesmo http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

thiago como você faz pra inserir os dados no banco, você dá um insert simples?

tipo assim?

 

<?php// insere o registro no BDinclude('config.php');$conexao = mysql_connect("$dbhost","$dbuser","$dbpass");mysql_select_db("$dbname");$contador = "INSERT INTO $TBedit_cont (email) VALUES ('".$_GET['email']."')";$query = mysql_query($contador);?>

ou tem algo a mais?

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algo assim mesmo, Andréa, mas com data e hora da leitura e id do email que está sendo lido, para facilitar a criação de estatísticas.De onde vêm as variáveis $dbhost, $dbuser, $dbpass, $dbname e $TBedit_cont??

vem daqui: include('config.php');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algo assim mesmo, Andréa, mas com data e hora da leitura e id do email que está sendo lido, para facilitar a criação de estatísticas.De onde vêm as variáveis $dbhost, $dbuser, $dbpass, $dbname e $TBedit_cont??

vem daqui: include('config.php');
consegui, só tem um problema, sempre dá erro ao enviar pro gmail, coloquei 6 e-mails no meu banco de dados pra testar sendo dois gmails e os dois gmails dão erro sempre.você tem ideia de pq isso thiago?estou enviando via IsMail() e não smtp pois acreito que meu servidor tenha um limite de emails para enviar por dia, por isso mesmo coloquei intervalos no meu script pra não ser enviado tudo ao mesmo tempo e congestionar lá, já que minha lista tem uns 900 emails. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrea, provavelmente é por falta da autenticação, que alguns servidores exigem.O melhor é enviar com IsSMTP() e definir o usuário e a senha, nas propriedades Username e Password da classe. A propriedade SMTPAuth também deve estar como true.É importante verificar quais as recomendações do seu provedor, quanto a horário de envio, intervalos etc., para evitar atritos ou até mesmo interrupção nos serviços. Outro ponto de atenção é a política de SPAM ;)[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrea, provavelmente é por falta da autenticação, que alguns servidores exigem.O melhor é enviar com IsSMTP() e definir o usuário e a senha, nas propriedades Username e Password da classe. A propriedade SMTPAuth também deve estar como true.É importante verificar quais as recomendações do seu provedor, quanto a horário de envio, intervalos etc., para evitar atritos ou até mesmo interrupção nos serviços. Outro ponto de atenção é a política de SPAM ;)[]sAnderson Mello

é via smtp funciona direitinho, vou ter que ver com meu servidor mesmo quantas podem ser enviadas.valeu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq você não faz um if (strpos($email,"gmail.com") { envia por SMTP}????

pq na verdade eu descobri que não é só o gmail, é gmail, yahoo, ig, hotmail... todos os gratuitos bloqueiam o envio se não for via smtp, só manda direito pros e-mails de servidor pago.meu servidor deixa enviar 50 emails a cada 10 mins, resta saber se existe uma forma dele ficar enviando mesmo que eu feche a janela do navegador pois se eu tiver por exemplo 900 emails na minha lista terei que ficar com a janela aberta esperando 3hs :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ter tem... todo servidor tem no painel de controle uma opção de tarefas agendadas... coloque um script q execute de 10 em 10 minutos... ou de 11 em 11 pra nao ter problema hehe. Aproveite e crie uma flag na sua tabela para identificar até onde foi enviado. Isso é até recomendável quando o servidor nao tem este limite, pois enviar 900 emails de uma vez pode até derrubar o seu server ou então congestionar e tornar impossivel a navegação. Principalmente pq qndo se manda emails é qndo você ta recebendo as visitas de quem já recebeu o email... isso pode ter sérios problemas se o volume de pessoas for mto grande.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ter tem... todo servidor tem no painel de controle uma opção de tarefas agendadas... coloque um script q execute de 10 em 10 minutos... ou de 11 em 11 pra nao ter problema hehe. Aproveite e crie uma flag na sua tabela para identificar até onde foi enviado. Isso é até recomendável quando o servidor nao tem este limite, pois enviar 900 emails de uma vez pode até derrubar o seu server ou então congestionar e tornar impossivel a navegação. Principalmente pq qndo se manda emails é qndo você ta recebendo as visitas de quem já recebeu o email... isso pode ter sérios problemas se o volume de pessoas for mto grande.

Seria o tal do Cron Tab? Mas não sei se seria isso o que preciso pq é um script pra fazer e enviar o email, o usuario não vai ter acesso a esse tipo de administração, fora que acho que meu servidor não tem isso :) meu painel de controle é o HELM e nem achei nada de Cron Tab lá :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, Andrea, no Linux é o cron tab, no Windows, é agendador de tarefas.Nunca usei, mas pelo que vi o HELM é pra Windows mesmo, não? Até alguém que já tenha usado esse painel poste algo a respeito, experimente contatar o suporte do seu provedor, questionando a utilização de tarefas agendadas ;)[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, Andrea, no Linux é o cron tab, no Windows, é agendador de tarefas.Nunca usei, mas pelo que vi o HELM é pra Windows mesmo, não? Até alguém que já tenha usado esse painel poste algo a respeito, experimente contatar o suporte do seu provedor, questionando a utilização de tarefas agendadas ;)[]sAnderson Mello

meu servidor não é brasileiro daí eu evito perguntar muito pois meu inglês é tosco hehehehe, mas vou ver qual é. entrei em outro servidor nacional só pra ver se tinha e achei o agendador de tarefas mas não entendi como eu faria pra juntar meu script a ele, vou dar uma vasculhada.abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola to com a mesma duvida da andreia....

 

tenho o sequinte codigo:

 

<?php//Connection statementrequire_once('../Connections/banco1.php');//Aditional Functionsrequire_once('../includes/functions.inc.php');// begin Recordset$query_Recordset1 = "SELECT * FROM e_email ORDER BY codigo ASC";$Recordset1 = $banco1->SelectLimit($query_Recordset1) or die($banco1->ErrorMsg());$totalRows_Recordset1 = $Recordset1->RecordCount();// end Recordset$email2 = $Recordset1->Fields('email');//PHP ADODB document - made with PHAkt 3.7.1?><?phprequire("../phpmailer/class.phpmailer.php");$mail = new PHPMailer(); //Cria PHPmailer class//$mail->IsSMTP();$mail->SetLanguage("br");$mail->IsMail(); $mail->IsHTML(true); // email do remetente da mensagem $mail->Host = "mail.webflavia.com.br"; //Seu servidor SMTP//$mail->Mailer = "smtp"; //Usando protocolo SMTP$mail->AddAddress("eduardo@webflavia.com.br"); //O destino do email$mail->FromName = "eduardo@webflavia.com.br"; //Nome de formatado do remetente$mail->Subject = "Testing PHPmailer"; //Assunto do email$mail->Body = "Coloque o conteudo aqui"; //Body of the message$mail->Body .= "<img src=\'http://www.caldeiraopolitico.com.br/email_mkt/lido.php?email2=$email2\' alt='' />"; $mail->Body .= "... espaco ... $email2"; // '.=' concatena texto$mail->MailAuth = true; $mail->Username = "eduardo@webflavia.com.br"; // Utilize uma conta valida para seu servidor$mail->Password = "********";//$mail->ConfirmReadingTo = "eduardo@webflavia.com.br";  if(!$mail->Send())  {echo "A mensagem não foi enviada. <p>";echo "Erro: " . $mail->ErrorInfo;  }?><?php$Recordset1->Close();?>

 

ENVIA .. CERTINHO ... MAS...NA PAGINA LIDO.PHP

 

<?php

//Connection statement

require_once('../Connections/banco1.php');

$query = "INSERT INTO e_email_lido VALUES ('', 'teste', 'teste', '".$_GET['email2']."')";

$comando= mysql_query($query);

?>

NAUM SEI PQ NAUM CADASTRA...

 

se qeu colocar no browser o

http://www.caldeiraopolitico.com.br/email_mkt/lido.php?email2=eduardo@webflavia.com.br

 

ele cadastra cerrtinho .. pq ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é pq você não colocou em que coluna é pra ser inserido?tipo: ...INSERT INTO tabela (email) VALUES ('$email');ou isso:<img src=\"http://www.caldeiraopolitico.com.br/email_mkt/lido.php?email2=".$email2."\" />

Andréa, para utilização de um script com agendador de tarefas, este deve ser autônomo, ou seja, não depender de usuário.

então não tem como né thiago? tipo se eu for mandar meus 900 emails vou ter que deixar o navegador aberto durante 3hs na página de envio? :mellow:

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.