+1

Como posso contar quantos emails um cliente tem usando PHP???? Claro, sem precisar informar a senha do cliente?

criado por Wagner Quedi Rosa em 04/04/2003 4:18pm
Nenhuma descrição foi enviada.

Lista de Respostas:

0
06/04/2003 12:44am
(~22 anos atrás)
Não tem um arquivo que mantém as mensagens de cada usuário? Pelo menos com o SquirrelMail era assim, daí era possível contar quantos e-mails cada usuário tinha.

0
07/04/2003 8:34am
(~22 anos atrás)
Cléver Anjos respondeu:
Qual MTA está sendo usado?
Qual o formato de mailbox?

0
07/04/2003 3:27pm
(~22 anos atrás)
Wagner Quedi Rosa respondeu:
eu uso o postfix como MTA.
ele tem um arquivo contendo os emails.

Minha idéia é a seguinte .. rodar um shell-script na cron que alimente um txt com o total de emails de cada cliente.
o problema que to enfrentando é que não to conseguindo achar uma linha padrão para divisão de emails dentro do arquivo ...
estava pensando em dar um
#cat /var/spool/mail/usuario |grep -c 'linha de divisao dos emails'

ai me retornaria o total de emails .. mas nao to encontrando a bendita linha

0
08/04/2003 8:18am
(~22 anos atrás)
Cléver Anjos respondeu:
A sua idéia é bom a nao ser por performance.
Caixas postais de emails podem facilmente passar de alguns MB o que retardaria o script.
A linha separadora normalmente é From: no começo da linha, ok?

0
11/04/2003 1:21pm
(~22 anos atrás)
... respondeu:
Com o SquirrelMail é so contar pq tem o arquivo que guarda as msgs de cada um.

0
12/04/2003 1:09am
(~22 anos atrás)
Wagner Quedi Rosa respondeu:
Ai Cléver ...
tentei usar a linha
#cat /var/spool/mail/webmaster |grep -c 'from'

na minha caixa postal haviam 12 emails mas a resposta que tive foi de 80, ai vi que tinha uma mensagem que era ja um dialogo antigo e ela ja foi respondida 51 veses, entao vi que com o 'from' nao dá...
mas mesmo assim valeu a dica...
assim que eu encontrar uma resposta estarei postando aqui pra vcs...

se alguem tiver alguma ideia...

0
14/04/2003 6:56am
(~22 anos atrás)
Erika Focke respondeu:
Você pode simplificar esse trabalho utilizando um código php que ira acessar o diretório e abrir o arquivo de e-mails, é bem mais seguro que mandar executar um script no servidor.
No meu caso eu utilizo o qmail, e ele gera um arquivo para cada nova mensagem, entao soh preciso contar quantos arquivos tem no diretorio. Mas no seu caso voce precisa mexer com arquivos:
.............................................
$separador = "separador entre mensagens";
$fp = fopen($arquivo,'r');
while(!feof($fp))
{
$line = fgets($fp);
if(!strncmp($line,$separador, strlen($separador)))
{
$count = $count + 1;
}
}
echo "Voce tem $count novas mensagens.";

.............................................

Nesse caso, o separador tem que ocupar uma linha inteira, porque o strncmp() vai comparar o separador com a linha inteira retornada pelo fgets, e vai retornar 0 se ela for igual(por isso o uso do ! antes da expressao, pra ela poder retornar 1 e entrar no if).
Mas se o separador nao ocupar uma linha inteira, voce tem de encontrar outra função de comparaçao...

0
15/04/2003 1:38pm
(~22 anos atrás)
Olá Wagner,

O comando correto ficaria assim:

# cat /var/spool/mail/webmaster | grep '^From ' | wc -l

Isso irá te retornar o número de mensagens na mbox do usuário webmaster. De acordo com a RFC do SMTP, o indício de inicio de mensagem é feito da seguinte forma: "uma linha que se inicia com a string From seguida de um espaço em branco". Por isso a regexp '^From ', onde:

^ = inicio de linha
From
' ' = espaço


[]'s,
Fábio Berbert de Paula

0
16/04/2003 1:02am
(~22 anos atrás)
Wagner Quedi Rosa respondeu:
Obrigado Fabio .. deu certo a parada de contar email aqui como vc me falou ...

e obrigado a todos que ajudaram tb ...
vou ver se eu implemento em php como indicou a Erika...

ai coloca aqui pra vcs verem ..

obrigado a todos

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)