Supprimer les signatures et les réponses des emails

Je travaille actuellement sur un système qui permet aux utilisateurs de répondre aux e-mails de notification envoyés ( soupir ).

J’ai besoin de supprimer les réponses et les signatures, de sorte que je rest avec le contenu réel de la réponse, sans tout le bruit.

Quelqu’un at-il des suggestions sur la meilleure façon de le faire?

Si votre système est interne ou si vous avez un nombre limité de formats de réponse, il est possible de faire du bon travail. Voici les filtres que nous avons mis en place pour les réponses par e-mail aux tickets trac:

Supprimez tout le texte après et y compris:

  1. Lignes égales '-- \n' (délimiteur de signature sig)
  2. Des lignes égales à '--\n' (les gens oublient souvent l’espace dans le délimiteur de signature; et ce n’est pas si commun à l’extérieur des sigs)
  3. Lignes commençant par '-----Original Message-----' (MS Outlook par défaut)
  4. Lignes commençant par '________________________________ ” (32 caractères de soulignement, Outlook à nouveau)
  5. Les lignes commençant par 'On ' et se terminant par ' wrote:\n' (OS X Mail.app par défaut)
  6. Lignes commençant par 'From: ' (sécurité intégrée quatre Outlook et certains autres formats de réponse)
  7. Lignes commençant par 'Sent from my iPhone'
  8. Lignes commençant par 'Sent from my BlackBerry'

Les nombres 3 et 4 sont «commencer par» au lieu de «est égal», car les utilisateurs écrasent parfois les lignes en cas d’accident.

Nous essayons d’être plus libéraux en ce qui concerne la suppression des réponses, car il est beaucoup plus gênant (pour nous) d’avoir une corbeille de réponse que de corriger un texte manquant.

Quelqu’un veut-il partager d’autres formats?

Découvrez le joyau email_reply_parser – https://github.com/github/email_reply_parser . Cela fait un bon travail pour gérer ce problème.

Je ne crois pas que vous puissiez le faire de manière fiable (les signatures commençaient par '--' mais je ne le vois plus). Peut-être est-il préférable de demander aux gens de répondre entre les en-têtes de texte et de retirer simplement la réponse? Ce n’est pas élégant, mais peut-être plus fiable.

par exemple

 REPLY BETWEEN HERE --> AND HERE --> 

donc vous devez simplement rechercher les en-têtes requirejs ci-dessus et prendre ce qui se trouve entre les deux.

Si vous voulez quelque chose de puissant et robuste et que cela ne vous dérange pas de lire des publications académiques, vous pouvez vérifier ceci:

  • Apprendre à extraire les lignes de signature et de réponse du courrier électronique

Voici la page d’accueil de l’un des auteurs, avec plus d’informations et quelques téléchargements:

  • Vitor R. Carvalho – Logiciels et jeux de données – (Vitor Carvalho)

Une approche qui ne peut être utilisée que pour la signature (en plus de détecter __ ou -) consiste à tester si le prénom et / ou le nom de famille de l’expéditeur se trouve sur une ligne courte (~ contenant 3 à 4 mots, max).

Le nom de l’expéditeur se trouve sur l’en-tête de courrier électronique brut, la plupart du temps à côté de l’adresse électronique, comme dans: From: John Doe

Cela serait basé sur l’hypothèse que vous écrivez rarement votre propre nom dans un email, et si vous le faites, c’est probablement dans une longue phrase.

Bien sûr, il y aura des faux positifs, mais cela ne posera peut-être pas de gros problèmes selon ce que vous faites (nous l’utilisons pour plier le texte et la signature entre eux dans un bouton de style gmail, donc la surdétection ne n’importe quel contenu, il est juste mal placé).

Si vous pouvez supposer que ces e-mails sont en texte brut, il suffit de supprimer les lignes commençant par “>” en tant que réponses, et la ligne “-” délimitant la signature. Mais ces hypothèses pourraient ne pas fonctionner, car tous les utilisateurs d’Internet n’utilisent pas de logiciels conformes aux règles.

Il y a une très belle bibliothèque PHP dédiée à l’parsing de messagerie

http://williamdurand.fr/EmailReplyParser/

https://github.com/willdurand/EmailReplyParser

Le délimiteur de signature recommandé est “- \ n”. Si les gens suivent cette recommandation, le retrait des signatures devrait être facile.