Pergunta

Um novo recurso que deseja adicionar à nossa rede local é a capacidade de recuperar e-mails a partir de serviços de e-mail gratuitos, como Gmail, Yahoo e Hotmail usando PHP. Há serviços que podem pagar, mas eu prefiro cortá-lo eu mesmo!

Eu acho que o Google tem apenas uma API, mas o resto não. Quais são os problemas associados então comigo só recuperar email usando CURL?

Eu mesmo implementado a parte GMail usando CURL e PHP.

Foi útil?

Solução

É quase certo que viola seus termos de serviço para a tela-raspar seus sites para esse fim. Se eles redesenhar seu site, os scripts que você está usando para analisar o conteúdo de e-mail etc. provavelmente vai quebrar catastroficamente, também.

Yahoo, Gmail e Hotmail todo o apoio POP3 , um protocolo padrão para recuperar e- mails. Por que não usar isso em vez disso?

Outras dicas

Quando alguém lhe dá uma API, eles estão prometendo-lhe que "se você executar o código X, Y vai acontecer. Quando você tela raspagem, não há tal promessa do provedor, e muitos fornecedores têm itens em seus termos de serviço que proíbem explicitamente screen scraping. do ponto de vista técnico, isso significa que sua página / aplicação pode sofrer alterações que vai quebrar o seu screen scraping, murcham acidentalmente ou propositadamente pelo provedor. é por isso que existem de CAPTCHA.

Além disso, cada vez mais, estas aplicações estão usando mais e mais "Ajax" arquiteturas de estilo, o que significa que você está se comprometendo a engenharia reversa como seus trabalhos de aplicação, bem como manter-se com as mudanças cada aplicativo faz.

Finalmente, bem, você está fazendo errado. E-mail é um conjunto de protocolos em si. A maioria dos provedores tem uma maneira de acessar e-mails via POP3 e IMAP. Eu olhar para hackear código PHP para interagir com os servidores POP / IMAP que, como uma API, são um conjunto prometida de comportamentos. Você também tem a vantagem de que o código escrito por um provedor de trabalho provável (com pequenos ajustes) para outro.

Eu suponho que você tem uma razão para não usar o protocolo pop que é o modo padrão suportado para recuperar e-mail. Para fazê-lo como você quer é algo que não é suportado e talvez também não ser coberto pelos termos de uso dos provedores.

Mas se nenhuma solução captcha fica em seu caminho é tecnicamente possível. Você terá que escrever uma aplicação diferente para cada provedor. Em caso de mudar algo que você terá de adoptar a sua aplicação.

Para fazê-lo funcionar com a onda não se esqueça de recolher todos os biscoitos que eles lhe dão em todas as páginas e para devolvê-los em cada solicitação.

Em caso de problemas (e também para o desenvolvimento), você pode analisar as solicitações HTTP e respostas com alguma ferramenta (por exemplo Proxomitron no Windows) e fazer os pedidos de onda mais e mais olhar exatamente como as solicitações do navegador até conseguir. No final, não há nada que possam fazer para distinguir seus pedidos onda de pedidos humanos através de um browser. Exceto captcha como eu disse antes.

Outra coisa é os intervalos entre seus pedidos, você pode ficar bloqueado para solicitar a freqüência ou quando não há nenhuma pausa entre 2 pedidos (que um ser humano não pode fazer). Tente inserir pausas modificados aleatoriamente entre os pedidos, se você suspeita que esse.

Eu posso imaginar que eles bloqueiam suas contas ou IPs durante o desenvolvimento, neste caso, seria necessário mudar o IP e / ou a conta que trabalhar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top