Лучший способ разобрать даты из электронной почты - PullRequest
2 голосов
/ 13 апреля 2010

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

В настоящее время я делаю это в php, но это немного неуклюже.

На каком языке лучше всего это сделать, и существуют ли уже существующие решения с открытым исходным кодом?

Ответы [ 3 ]

0 голосов
/ 20 апреля 2010

В моем почтовом клиенте я извлекаю все токены, разделенные пробелами, и затем перебираю их, используя эвристику, чтобы решить, как классифицировать каждый токен. Например, если в токене есть символ «:», я воспринимаю его как время, которое нужно проанализировать как ##: ##: ##. Если есть «.» или '-' рассматривайте это как комбинацию день / месяц / год, и вы должны решить, какой конец какой ... может быть любым количеством комбинаций. Если токен начинается с буквы (то есть isalpha (* string)), тогда вы делаете поиск по названию месяца. Если это число, то это может быть день или год ... определяется исходя из продолжительности, а также, есть ли у вас уже существующий день или год и т. Д. Если токен начинается с '-' или '+', то это часовой пояс, проанализируйте соответственно.

Кажется, что работает в поле довольно хорошо, мой почтовый клиент работает около 10 лет или около того. Мой код на C ++, но вы можете легко написать то же самое на PHP, это не зависит от языка.

0 голосов
/ 20 апреля 2010

если вы имеете в виду дату, когда она была отправлена ​​(или получена), вы извлекаете их из заголовков почты (например, заголовок «Date:»), и они имеют стандартный формат даты, см. RFC 2822

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

Date sentDate = mail.getSentDate();
0 голосов
/ 13 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...