A melhor maneira de lidar com o processamento/descodificação de E-mail em PHP?
Estou à procura de algo que seja capaz de separar adequadamente partes da mensagem, tais como, de, corpo, etc. Idealmente, ele seria capaz de lidar com todos os métodos de codificação comuns, tais como base64, uuencode, printable citada, etc.
em situações em que ambos versões de texto e html da mesma mensagem estão contidas em um único e-mail, eu preferiria que ele soubesse a diferença entre eles para que eu pudesse escolher qual parte eu gostaria de exibir.
Não estou preocupado com os anexos neste momento, mas seria bom ter conhecimento deles, caso eu queira implementar isso no futuro.Eu vi que o PHP tem um grupo de funções que começam com a palavra imap que parecem que podem fazer o que eu gostaria, mas eu não tenho certeza sem a experimentá-los.
actualmente, estou a descodificar as mensagens em voo no PHP, e é por isso que estou à procura de uma solução de substituição do PHP.
Alguém tem alguma experiência com isto que me possa indicar a direcção certa? Detestaria começar a usar algo que acabasse por não fazer o que preciso a longo prazo.6 answers
Desenvolvi recentemente um analisador de correio PHP e tenho-o usado na produção.
Eu tenho muito feliz com ele e alguns desenvolvedores tem bifurcado:
Https://github.com/plancake/official-library-php-email-parser
composer require zbateson/mail-mime-parser
Ele faz uso de fluxos que lhe permitem passar uma conexão SMTP (para analisar um e-mail e armazenar em um banco de dados, por exemplo), ou um arquivo, ou um fluxo de memória... o que quiseres. Também não guarda todas as informações na memória. ainda não testei este bit com um conjunto de dados grande o suficiente, mas em teoria e-mails com anexos muito grandes não vai usar toda a memória do PHP.
Https://github.com/zbateson/MailMimeParser
Vê o wiki para um guia e a API... e se você encontrar bugs/typos ou ver melhorias, por favor contribua:)
Pedi ao analisador de php-mime-mail para corrigir todos os problemas: Fork do analisador de php-mime-mail-parser
Mais de 52 testes e 764 afirmações Cobertura do Código: linhas a 100%, funções e métodos a 100%, Classes A 100% e características
Você precisa do pacote PECL MailParse para usá-lo, mas a embalagem é sem problema e totalmente testado.
De momento, também estou à procura de uma biblioteca de análise de E-mail robusta e robusta para MIME e estou a analisar seriamente o componente Mail dos componentes eZ. Mas, se estás à procura de algo que o torne tão fácil como echo $email->text;
ou echo $email->html;
, Como eu estava, vais ficar desapontado. Na verdade, Agora eu não acho que essa simplificação seja sequer possível, devido à forma como o MIME funciona. Mas parece ser a melhor opção no mundo PHP.
Quanto a extensão do IMAP, o seu objectivo é lidar com a recuperação de mensagens da sua caixa de correio, não com a descodificação MIME. Embora, ele tem alguma função de descodificação útil que você pode precisar. Mailparse extensão PECL, por outro hand, lida exactamente com esse conjunto de problemas. Eu ainda não tentei, mas parece que você precisa escrever um monte de código para realmente chegar aos dados que você quer.