Я хочу подключить прием электронной почты и приложений - PullRequest
1 голос
/ 15 мая 2009

Если письмо отправлено на XXXX@YYYY.ZZZ, я хочу поместить содержимое письма в базу данных, но как это реализовать? Я использую postfix для MTA.

Ответы [ 2 ]

3 голосов
/ 15 мая 2009

Если вам определенно необходимо, напишите программу для обработки ввода (скажем, / usr / bin / your_program) и поместите ее в / etc / aliases:

intended-local-address: "|/usr/bin/your_program"
1 голос
/ 16 мая 2009

Я использовал fetchmail . Если вы настроите его правильно, он может сделать блокирующий вызов на удаленный сервер IMAP (он будет зависать, пока не получено письмо, как это круто, нет активного опроса!). Он обрабатывает многие виды почтовых протоколов. Он помещает письмо с заголовками в программу по вашему выбору (я использовал python, и это встроенная библиотека для разбора почты).

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

Еще несколько вещей, которые стоит отметить:

  1. Соединение прерывается или сбрасывается в конце концов (через несколько часов, иногда через несколько недель). Я подозреваю, что сервер IMAP перезапускается.
  2. Не пытайтесь разобрать письмо самостоятельно. Я сдался после отладки 5-го способа отправки тела письма, а затем использовал существующую библиотеку.
  3. После того, как опрос закончится, сделайте сон 5 или что-то еще до того, как Вы снова проведете опрос. Однажды моя почтовая программа оказалась в бесконечном цикле с другим, и сон 5 спас меня.
...