Подтвердить что ты не робот

Записи подписей и ответы из писем

В настоящее время я работаю над системой, которая позволяет пользователям отвечать на уведомления, отправленные (вздох).

Мне нужно вырезать ответы и подписи, чтобы я остался с фактическим содержимым ответа без всякого шума.

Есть ли у кого-нибудь предложения относительно наилучшего способа сделать это?

4b9b3361

Ответ 1

Если ваша система является собственностью и/или у вас ограниченное количество форматов ответов, можно сделать довольно хорошую работу. Вот фильтры, которые мы установили для ответов электронной почты на билеты trac:

Отбросьте весь текст после и включите:

  • Линии, которые равны '-- \n' (стандартный разделитель sig email)
  • Линии, которые равны '--\n' (люди часто забывают пространство в разделителе sig, и это не так, как обычные внешние sigs)
  • Линии, начинающиеся с '-----Original Message-----' (MS Outlook по умолчанию)
  • Линии, начинающиеся с '________________________________ '(32 символа подчеркивания, Outlook снова)
  • Линии, начинающиеся с 'On ' и заканчивающиеся на ' wrote:\n' (OS X Mail.app по умолчанию)
  • Линии, начинающиеся с 'From: ' (отказоустойчивые четыре Outlook и некоторые другие форматы ответов)
  • Линии, начинающиеся с 'Sent from my iPhone'
  • Линии, начинающиеся с 'Sent from my BlackBerry'

Числа 3 и 4 начинаются с 'вместо' равно ', потому что иногда пользователи скрипят строки вместе при аварии.

Мы стараемся быть более либеральными в том, чтобы убирать ответы, так как это гораздо больше раздражает (для нас) ответ мусора, чем исправлять недостающий текст.

У кого-нибудь есть другие форматы из дикой природы, которые они хотят разделить?

Ответ 2

Я не считаю, что вы можете сделать это надежно (подписи, используемые для начала с '--', но я этого больше не вижу). Возможно, вам лучше попросить людей ответить между заголовками текста, а затем просто отменить ответ? Он не изящный, но, возможно, более надежный.

например.

REPLY BETWEEN HERE -->

AND HERE -->

чтобы вы просто искали нужные заголовки выше и принимали какие-то промежуточные.

Ответ 4

Если вы хотите что-то мощное и надежное, и не против читать академические публикации, вы можете проверить это:

Здесь главная страница для одного из авторов, с дополнительной информацией и некоторыми загрузками:

Ответ 5

Если вы можете предположить, что эти электронные письма находятся в виде простого текста, просто разделите строки, начинающиеся с " > " в ​​качестве ответов, а строка "-" должна разграничить подпись. Но эти предположения могут не работать, поскольку не все люди используют интернет-программное обеспечение, которое соответствует правилам.

Ответ 6

Подход, который может использоваться только для сигнатуры (в дополнение к обнаружению __ или -), заключается в том, чтобы проверить, находится ли первое имя и/или фамилия отправителя на короткой строке (~ содержит от 3 до 4 слов, макс).

Имя отправителя находится в заголовке необработанного сообщения электронной почты, большую часть времени рядом с адресом электронной почты, например, в: From: John Doe <[email protected]>

Это будет основано на предположении, что вы редко пишете свое имя в электронном письме, и если вы это сделаете, это, вероятно, в длинном предложении.

Конечно, будет некоторая ложь-положительная, но это может быть не большая проблема в зависимости от того, что вы делаете (мы используем ее для сбрасывания цитированного текста и подписи в кнопку gmail-style, поэтому переопределение не заканчивается чтобы потерять любой контент, он просто неуместен).