Ir para conteúdo

POWERED BY:

Arquivado

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

ericoutinho

Receber emails via PHP

Recommended Posts

Olá a todos,

 

Sou principiante em PHP e tenho a seguinte situação.

Tenho a necessidade de fazer uma verificação na caixa de entrada de minha conta de email (via IMAP ou POP3)

e fazer a leitura dos cabeçalhos dos emails, porém não achei ainda nenhuma solução satisfatória.

Existe a possibilidade de ciar itens de cabeçalho personalizados?

Desde já agradeço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi!

 

Ele que baixar todos os cabecalhos dos emails da caixa de entrada.

Tipo como o wlmail faz.

 

Correto @ericoutinho?

 

 

Olá,

 

Não conheço o wlmail, mas a minha necessidade é a seguinte.

Tenho um sisteminha de envio de newsletter em php.

Mas gostaria de monitorar o emails que são devolvidos com o intuito de removê-los, de forma automatizada, da minha lista de emails. Sacou?

Por isso gostaria de monitorar os emails que recebo em minha caixa postal e filtrá-los conforme minha necessidade.

 

Achei este post em outro forum. Clique aqui

Vou ver o que consigo com ele.

Mas se alguem tiver alguma idéia para contribuir, eu seria muito grato.

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, bom vou , uma soluçao seria essa.

 

No corpo do e-mail da news você inseria uma imagem 1px/1px, e nela você colocaria um link assim.

<?php echo <img src="news/verifica/imagem.png?id=$id_email" width="1" height="1">; ?>

 

No diretorio do seu site você cria uma pasta com o nome imagem.png e um arquivo index.php, com uma imagem .jpg dentro apenas p/ nao dar um erro.

 

No index.php você faria o seguinte.

<?php
$id = $_GET['id'];

// Aqui você salva o id em algum lugar(banco de dados, arquivo .txt, etc)
?>

 

Entao cada vez que o usuario receber o e-mail você acresentar +1 no campo ou no arquivo, assim você vai ter uma base apos 5 mensagens enviadas, quantas vezes o usuario leu, caso nas 5 o usuario nao abriu as mensagens.

De duas uma:

- Ou ele ta com preguica de abrir as mensagens

- Nao existe mais o email.

 

Mas e apenas uma opção NAO MUITO VIAVEL.

 

Pelo menos é +- nesses moldes que funciona o avatar meus aqui <<<

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, bom vou , uma soluçao seria essa.

 

No corpo do e-mail da news você inseria uma imagem 1px/1px, e nela você colocaria um link assim.

<?php echo <img src="news/verifica/imagem.png?id=$id_email" width="1" height="1">; ?>

 

No diretorio do seu site você cria uma pasta com o nome imagem.png e um arquivo index.php, com uma imagem .jpg dentro apenas p/ nao dar um erro.

 

No index.php você faria o seguinte.

<?php
$id = $_GET['id'];

// Aqui você salva o id em algum lugar(banco de dados, arquivo .txt, etc)
?>

 

Entao cada vez que o usuario receber o e-mail você acresentar +1 no campo ou no arquivo, assim você vai ter uma base apos 5 mensagens enviadas, quantas vezes o usuario leu, caso nas 5 o usuario nao abriu as mensagens.

De duas uma:

- Ou ele ta com preguica de abrir as mensagens

- Nao existe mais o email.

 

Mas e apenas uma opção NAO MUITO VIAVEL.

 

Pelo menos é +- nesses moldes que funciona o avatar meus aqui <<<

:thumbsup:

 

 

Show de bola!

 

Você expandiu meus horizontes. Vou montar um modelo aqui e fazer uns testes. Isso já resolve a minha situação quantos aos e-mails lidos.

Mesmo assim, queria fazer um jeito de checar os emails que são recusados pelo servidor (emails encerrados ou com endereço errados). Mas com essa dica já tenho 50% do problema resolvido.

Muito obrigado pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então essa parada de retorno de e-mail, acho que só usando caixa de entrada mesmo, pois demora cerca de 2 horas para o servidor retornar a resposta na falha do envio.

 

Agora não sei como pegar esse valor através do .php :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se sua conta de correio suportar IMAP e você tiver a extensão habilitada no seu servidor, você pode fazer assim:

 

1. Crie um diretório e baixe o código do repositório

$ mkdir phpmail
$ cd phpmail
$ git clone git@github.com:netojoaobatista/phpmail.git .

 

2. Edite o arquivo de exemplo e configure o usuário, senha e servidor:

 

example/example.php

<?php
require 'dso/mail/imap/exception/ImapException.php';
require 'dso/mail/imap/Imap.php';

$username = 'usuario@gmail.com'; //Modifique para seu usuário
$password = 'senha'; //Modifique para sua senha

if ( $username == 'usuario@gmail.com' && $password == 'senha' ) {
throw new Exception( 'Defina o usuário e senha antes de executar o exemplo' );
} else {
try {
	$imap = new Imap();
	$imap->open( '{imap.gmail.com:993/imap/ssl/novalidate-cert}' , $username , $password ); //Se não estiver usando GMail, modifique o servidor

	for ( $mbi = $imap->getMailboxIterator() ; $mbi->valid() ; $mbi->next() ) {
		$mailbox = $mbi->current();
		$mailbox->open();

		printf( "%s\n" , $mailbox->getName() );

		for ( $mi = $imap->getMessageIterator() ; $mi->valid() ; $mi->next() ) {
			$message = $mi->current();
			$message->fetch();

			printf( "\tID: %s\n" , $message->getMessageId() );
			printf( "\tDe: %s\n" , $message->getFrom() );
			printf( "\tPara: %s\n" , $message->getTo() );
			printf( "\tAssunto: %s\n" , $message->getSubject() );
			printf( "\tData: %s\n\n" , $message->getDate() );
		}

		echo PHP_EOL;
	}
} catch ( ImapException $e ) {
	echo $e->getMessage() , PHP_EOL;
}
}

 

3. Execute o código, configurando seu includepath:

$ php -d include_path="." example/example.php

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem interessante mesmo, nunca tinha pensado nisso. Já vi alguns gerenciadores como o OutLook e Mozilla ThunderBird, mais em PHP...

 

Vamos ver xD

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.