Transport.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Mail;
  7. use Magento\Framework\Exception\MailException;
  8. use Magento\Framework\Phrase;
  9. use Zend\Mail\Message as ZendMessage;
  10. use Zend\Mail\Transport\Sendmail;
  11. class Transport implements \Magento\Framework\Mail\TransportInterface
  12. {
  13. /**
  14. * @var Sendmail
  15. */
  16. private $zendTransport;
  17. /**
  18. * @var MessageInterface
  19. */
  20. private $message;
  21. /**
  22. * @param MessageInterface $message
  23. * @param null|string|array|\Traversable $parameters
  24. */
  25. public function __construct(MessageInterface $message, $parameters = null)
  26. {
  27. $this->zendTransport = new Sendmail($parameters);
  28. $this->message = $message;
  29. }
  30. /**
  31. * @inheritdoc
  32. */
  33. public function sendMessage()
  34. {
  35. try {
  36. $this->zendTransport->send(
  37. ZendMessage::fromString($this->message->getRawMessage())
  38. );
  39. } catch (\Exception $e) {
  40. throw new MailException(new Phrase($e->getMessage()), $e);
  41. }
  42. }
  43. /**
  44. * @inheritdoc
  45. */
  46. public function getMessage()
  47. {
  48. return $this->message;
  49. }
  50. }