## [4.0.2] - 2019-02-05
### Changed
- Added 'defined or die statement' to config file.
### Removed
## [4.0.1] - 2019-02-05
### Fixed
- Fixed `Cannot use Concrete\Package\MailService\Core\Mail\MessageBuilder as MessageBuilder...`.
## [4.0.0] - 2018-08-12
### Added
- Added service provider that enables dependency injection.
- Added Elastic Email as new email service.
- Added Inwise as new email service.
- Added a custom Doctrine repository.
- Added a Doctrine event listener.
- Added a service aggregator that wraps all configs.
### Changed
- Renamed 'MailServiceSetting' model to 'MailServiceConfig' and refactored it to Doctrine model.
- Mail services now available with dependency injection.
- Moved a lot of classes to a different namespace.
- Refactored the message builder and client for Sendinblue from api version 2 to api version 3.
- Implemented DI in dashboard controllers.
- Moved abstract controllers to different namespace.
- Changed to change log layout to a more custom format.
- Package controller::install and ::upgrade now use database transactions.
### Removed
- Removed the mail service factory in favor of DI.
- Removed the Version class.
- Removed db.xml in favor of Doctrine model.
- Removed the MailServiceEnabler trait and delegated code to abstract base controller.
- Removed the TestMailer trait and delegated code to abstract base controller.
### Fixed
- Updated external urls to transactional email websites that didn't exist anymore.
## [3.1.0] - 2017-10-22
### Added
- Added SendinBlue and Postmark to supported services.
### Changed
- Deprecated MailServiceSetting::isConfigured and refactored all calls to this method.
- Removed commented-out redundant code.
## [3.0.1] - 2017-10-20
### Fixed
- Fixed bug not showing error message from Mailjet.
### Added
- Show curl error when sending test mail when applicable.
- Implemented reply-to for all services.
## [3.0] - 2017-10-18
Refactored the package to work in Concrete version 5.8.2 and higher due to changes in Concrete's core.
### Changed
- Moved message builder composing to mail service base class because this was the same code in every service.
- Refactored TemporaryFile class to work with file contents rather than with Concrete's File class.
- Refactored mail service base class to accommodate for the new raw attachments in the mail service.
- Refactored mail service factory due to changed constructor in Concrete's mail service that now requires arguments.
- Optimized code in a lot of places.
- Added email template to be used for test mails.
### Fixed
- Fixed a bug with setting html body that was set as text body for Sendgrid.
## [2.0.1] - 2017-10-20
### Fixed
- Fixed bug when sending Sendgrid html mail that was sent as plain text.
- Fixed bug The use statement with non-compound name '...' has no effect in single page views.
- Fixed bug not showing error message from Mailjet.
### Added
- Show curl error when sending test mail when applicable.
- Implemented reply to for all services.
## [2.0] - 2017/10/17
Built to make the add-on suitable for Concrete version 5.8. Users running Concrete versions lower than 5.8 should uninstall and remove this package completely before installing this one.
### Added
- Added Mailjet to list of supported transactional email services with own dashboard page and controller.
- Added method installOrUpgrade to package controller for all install and upgrade code.
- Created message builders for transactional email services that didn't have one due to removed vendor libraries.
- Created REST clients for all transactional email services using curl to make the calls.
- Added Version class for easing version comparison.
- Added checks in package controller and install page to prevent installation on Concrete version 5.8.2 or higher (requires different version due to changes in Concrete's mail service.
- Added an interface for the email message builders.
- Added possibility to disable ssl checks for curl using an environmental variable (convenient for testing or development when there are issues with certificates on your computer - this often happens on Windows).
### Fixed
- Fixed missing use-statements for RunTimeException class in service classes.
- Fixed phpDoc comments where necessary.
### Changed
- Dependency injection no longer with ServiceProvider in /application/src folder but in the on_start-method of the package controller and controller no longer modifies config file and /src folder (due to changes in Concrete5 8).
- Moved methods for message builders to abstract base class for Mandrill and Mailjet.
- Refactored parameter casting in TemporaryFile class and Service base class to expect \Concrete\Core\Entity\File\File rather than \Concrete\Core\File\File (due to changes in Concrete 5.8).
- Refactored deprecated UserInfo::getByID() in TestMailer class.
- Refactored 'self::' method calls to 'static::' method calls (late static binding) in TemporaryFile class.
- Changed installation screen due to changed installation requirements.
- Renamed 'src'-folder to 'lib' and refactored namespaces accordingly to avoid possible conflicts with Concrete5.
- Refactored usages of deprecated Error class to use Core::make('error');.
- Moved traits to different folder and namespace.
- Success message for sending test email now includes the email address to which the test email has been sent.
- Changed namespace of Environment class to \Concrete\Package\MailService\Core\Foundation.
### Removed
- Removed unused Session class.
- Removed all 3rd party libraries due to maintenance considerations and possible conflicts with Concrete.
## [1.1.1] : 2016-01-03
### Fixed
- Fixed 'form not showing' when saving mail credentials and validation errors occur.
## [1.1.0] : 2015-11-03
### Added
- Added extra checks for write permissions (filesystem) and module cURL in install 'screen' and package controller as requirements check to avoid breaking installation. Also adjusted the pre-installation page accordingly.
- Added enable, disable and send-test-email buttons to the configuration pages and added edit/cancel buttons to toggle
- Added configuration how-to to columns of configuration pages.
- Added some redundancy that prevents an unconfigured service from being enabled.
### Removed
- Removed redundant error output on single pages (Errors are already output by Concrete) editing. Delegated the send-test-mail logic and enable/disable logic to traits.
### Fixed
- Fixed bug with Concrete\Package\MailService\Src\Mail\Service::getActualFrom that was returning default from-email instead of from-address of the corresponding mail service.
### Changed
- Set 'enabled' flag for mail service to false on update if the service is not configured properly
## [1.0.0] : 2015-09-14
### Changed
- Replaced one usage of 'Loader' which is deprecated
- Bumped version to 1.0 because of release on the marketplace
[0.9.3] - 2015-09-03
### Added
- Added upgrade method to package controller to recreate folders on upgrade.
[0.9.2] - 2015-08-20
### Fixed
### Added
- Add LICENSE AND LICENSE.3rdparty
- Installed full vendor libraries
### Removed
- Removed .git and composer.json
- Removed deprecated Loader usages
## [0.9.1] - 2015-08-15
### Removed
- Removed usages of $_SESSION and 'unexpected T_STRING' in vendor libraries.
## [0.9.0] - 2015-08-11 (Initial release)
### Added
- Submitted package for marketplace approval. Will bump version to 1.0 when approved.