Library for processing bank confirmation emails. Right now only support of Tatrabanka two emails formats.
If we will add more emails from other banks there will be need to do some refactoring (for example MailContent is strongly connected to TatraBanka)
Install package via composer:
$ composer require tomaj/bank-mails-parser
Basic usage in php:
use Tomaj\BankMailsParser\Parser\TatraBanka\TatraBankaMailParser;
$tatraBankaMailParser = new TatraBankaMailParser();
$mailContent = $tatraBankaMailParser->parse('mail content');
echo $mailContent->getKs() . "\n";
echo $mailContent->getSs() . "\n";
echo $mailContent->getVs() . "\n";
echo $mailContent->getReceiverMessage() . "\n";
echo $mailContent->getDescription() . "\n";
echo $mailContent->getCurrency() . "\n";
echo $mailContent->getTransactionDate() . "\n";
echo $mailContent->getAccountNumber() . "\n";
echo $mailContent->getAmount() . "\n";
echo $mailContent->getAccountNumber() . "\n";
echo $mailContent->getTxn() . "\n";
With TatraBankaSimpleMailParser you can parse comforpay emails. There are other getters like CID for reccurent payments.
echo $mailContent->getCid() . "\n";
echo $mailContent->getSign() . "\n";
echo $mailContent->getRes() . "\n";
For using version 3 you will need at least php 7.1. There were introduced multiple breaking changes:
Tomaj\BankMailsParser\Parser\ParserInterface
will no return false anymore, only?MailContent
- Introduced strict types for whole project
declare(strict_types=1);
- All Tatrabanka related code was moved under
TatraBanka
folder with proper namespace - Added strict types to all methods and params
- Upgrade phpunit to version 9
There is one breaking change in version 2.0 - parser returns MailContent always when email is parsed. In version 1.0 - parser returns MailContent only when response from bank was OK. In version 2 you can read also FAIL emails.
Example how to use with imap mail downloader:
use Tomaj\ImapMailDownloader\Downloader;
use Tomaj\ImapMailDownloader\MailCriteria;
use Tomaj\ImapMailDownloader\Email;
use Tomaj\BankMailsParser\Parser\TatraBanka\TatraBankaMailParser;
$downloader = new Downloader('*imap host*', *port*, '*username*', '*password*');
$criteria = new MailCriteria();
$criteria->setFrom('[email protected]');
$downloader->fetch($criteria, function(Email $email) {
$tatraBankaMailParser = new TatraBankaMailParser();
$mailContent = $tatraBankaMailParser->parse($email->getBody());
// process $mailContent data...
return true;
});
Note: You have to include package imap-email-downloader: composer require tomaj/imap-email-downloader
Add parses for other banks confirmation emails. Feel free to fork and create pull requests with other banks parsers.