Я использую приложение Buxfer.com для управления капиталом. Этот сервис позволяет сообщать о расходах, отправляя электронную почту на специальный частный адрес электронной почты, назначенный пользователю Buxfer.

Формат, необходимый для сообщения о расходах, доходах или переводах:

<description> [+]<amount> [tags:<tags>] [acct:<account>] [from:<account>] [to:<account>] [date:<date>] [status:<status>] [memo:<memo>]

Элементы в [квадратных скобках] являются необязательными. Текст может быть написан в поле заголовка или в содержании сообщения .

Примеры:

кофе 5.45

Простейший пример с минимальной информацией, необходимой для обработки запроса. Расход: 5.45 от учетной записи по умолчанию, описание: "кофе".

кофе 5.45 теги: напитки, кофе acct: amex

Расход: 5,45 на кофе со счета «Амекс», прикрепленные теги: «напитки» и «кофе»

Оплатить чек +6952.32 статус: в ожидании

Доход: платежный чек 6952,32. Чек еще не очищен

Снятие банкомата 200 с:BoA Проверка на: Наличные

Перевод: снял 200 с банкомата Банка Америки в кошелек

После каждой транзакции я получаю уведомление по электронной почте от банка. Образец электронного письма выглядит так:

from: info@equabank.cz
to: [myemail]@gmail.com
topic: Payment card transaction

Дорогой. [Фамилия],

05.11.2017 в 10:08 на вашей платежной карте была совершена транзакция на сумму 536,80 крон. Детали оплаты: KOSIK RETAIL SRO> PRAHA 9 CZ.

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

Эква банк


[...]

Я ищу решение для автоматической обработки входящей электронной почты, чтения информации о транзакции и отправки электронной почты на предопределенный адрес от Buxfer.

Желаемый результат в этом примере:

from: [myemail]@gmail.com
to: [privateemail]@buxfer.com
topic: KOSIK RETAIL S.R.O.>PRAHA 9           CZ 536.80

Мое доступное оборудование:

  • ноутбук с Windows 10,
  • RaspberryPi 3B с Ubuntu Mate 16.04 LTS,
  • смартфон с Android 7.1.2 (AOSP Extended 4.6)

Я пытался сделать это с помощью правил фильтрации в Gmail и Thunderbird; найти дополнение к Thunderbird, которое могло бы это сделать; искал в Интернете подходящее программное обеспечение, но я нашел только инструменты для пакетной отправки электронных писем, пересылки электронной почты или автоматических ответов.

3 ответа3

2

IFTTT и аналогичные веб-сервисы для онлайн-автоматизации и интеграции могут быть использованы для автоматизации этого процесса. Платформа IFTTT предоставляет широкий спектр доступных сервисов с возможностью настраивать действия в JavaScript (технически TypeScript) в "Filter code", который выполняется после Trigger ("if") и перед Action ("then"), однако требуется создать собственный апплет.

В качестве триггера я выбрал службу Gmail и выбрал «Новое электронное письмо в почтовом ящике» по адресу «info@equabank.cz».

В качестве действия я снова выбрал Gmail, выбрал "Отправить письмо" на адрес электронной почты учетной записи Buxfer и настроил следующие поля:

  • Тема: {{Subject}}
  • Body: {{BodyPlain}}

После добавления действия можно было написать код фильтра, который позволял извлекать сумму с описанием из почтового сообщения и форматировать их требуемым образом (описание, пространство, сумма). Необходимо было удалить любые специальные символы, потому что в отправленном электронном письме они были преобразованы в символы HTML. Однако Buxfer анализировал входящие электронные письма как обычный текст и рассматривал точку с запятой (;) в конце любого специального символа как начало новой транзакции, согласно « документации »:

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

if (Gmail.newEmailFrom.Subject === "Payment card transaction") {
  var body = Gmail.newEmailFrom.BodyPlain;
  var lines = body.split("\n\n");
  var targetLine = lines[1];
  var words = lines[1].split(" ");
  var amount = words[16];
  var description = targetLine.substring(
    targetLine.lastIndexOf("Payment detail: ") + 16
    );

  description = description.replace(/[^\w\s:]/gi, ' ');
  var targetBody = description + amount;

  Gmail.sendAnEmail.setBody(targetBody);
} else if (Gmail.newEmailFrom.Subject === "Incoming payment to your account") {
  ...
} else if (Gmail.newEmailFrom.Subject === "Outgoing payment from your account") {
  ...
} else {
  Gmail.sendAnEmail.skip()
}

В настоящее время это решение хорошо работает с транзакциями по платежным картам. Отслеживание входящих платежей потребует обработки нескольких учетных записей. Исходящие платежи должны были бы решить проблему с учетными карточками платежей.

0

Я могу ответить по отношению к Unix, здесь Ubuntu.

Вам нужен локальный MTA (агент передачи почты), такой как "sendmail", настроенный необходимым образом, особенно в отношении используемых безопасных протоколов и вашей аутентификации на удаленном сайте. Затем вы должны создать сообщение для отправки с помощью простого текстового редактора или любого инструмента, который может создавать простой текст. Как только ваше сообщение будет создано, вы можете просто отправить его в "sendmail", которое отправит его получателю. При правильной настройке "sendmail" может выполнить всю аутентификацию.

Для обработки входящих сообщений вы можете установить и настроить "fetchmail", которая может получать сообщения с удаленного сервера по соответствующему протоколу. Учитывая, что вы, вероятно, будете получать многочисленные сообщения, не только связанные с этой платежной системой, вам придется фильтровать входящие сообщения. "procmail", вероятно, хороший инструмент, чтобы помочь вам в этой задаче.

Признаюсь, что настройка этого инструмента не на начальном уровне.

-1

Вам нужен POP/IMAP сервер на вашем почтовом сервере, чтобы вы могли получать электронные письма на вашем локальном компьютере. На Linux-машине я рекомендую Dovecot. Для автоматизации операции fetchmail сделает все остальное.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .