tomaj / bank-mails-parser
Slovak banks mail parse
Installs: 79 643
Dependents: 1
Suggesters: 0
Security: 0
Stars: 7
Watchers: 8
Forks: 11
Open Issues: 1
Requires
- php: >= 7.2
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: ^8 || ^9
- squizlabs/php_codesniffer: ^3.5
README
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)
Installation
Install package via composer:
$ composer require tomaj/bank-mails-parser
Usage
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";
Upgrade from 2.* to 3.*
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
Upgrade from 1.* to 2.*
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.
Usage with imap mail downlaoder
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('some@email.com'); $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
TODO
Add parses for other banks confirmation emails. Feel free to fork and create pull requests with other banks parsers.