Como posso contar quantos emails um cliente tem usando PHP???? Claro, sem precisar informar a senha do cliente?
Nenhuma descrição foi enviada.
comentários (0)
suspender
Lista de Respostas:
06/04/2003 12:44am
(~22 anos atrás)
(~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.
07/04/2003 8:34am
(~22 anos atrás)
(~22 anos atrás)
Qual MTA está sendo usado?
Qual o formato de mailbox?
Qual o formato de mailbox?
07/04/2003 3:27pm
(~22 anos atrás)
(~22 anos atrás)
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
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
08/04/2003 8:18am
(~22 anos atrás)
(~22 anos atrás)
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?
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?
11/04/2003 1:21pm
(~22 anos atrás)
(~22 anos atrás)
Com o SquirrelMail é so contar pq tem o arquivo que guarda as msgs de cada um.
12/04/2003 1:09am
(~22 anos atrás)
(~22 anos atrás)
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...
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...
14/04/2003 6:56am
(~22 anos atrás)
(~22 anos atrás)
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...
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...
15/04/2003 1:38pm
(~22 anos atrás)
(~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
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
16/04/2003 1:02am
(~22 anos atrás)
(~22 anos atrás)
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
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