|
- <?php
- /***************************************************\
- *
- * Mailer (https://github.com/txthinking/Mailer)
- *
- * A lightweight PHP SMTP mail sender.
- * Implement RFC0821, RFC0822, RFC1869, RFC2045, RFC2821
- *
- * Support html body, don't worry that the receiver's
- * mail client can't support html, because Mailer will
- * send both text/plain and text/html body, so if the
- * mail client can't support html, it will display the
- * text/plain body.
- *
- * Create Date 2012-07-25.
- * Under the MIT license.
- *
- \***************************************************/
- namespace Tx;
-
- use Psr\Log\LoggerInterface;
- use \Tx\Mailer\Message;
- use \Tx\Mailer\SMTP;
-
- /**
- * Class Mailer
- *
- * This class provides the Mailer public methods for backwards compatibility, but it is recommended
- * that you use the Tx\Mailer\SMTP and Tx\Mailer\Message classes going forward
- *
- * @package Tx
- */
- class Mailer
- {
- /**
- * SMTP Class
- * @var SMTP
- */
- protected $smtp;
-
- /**
- * Mail Message
- * @var Message
- */
- protected $message;
-
- /**
- * construct function
- * @param LoggerInterface $logger
- */
- public function __construct(LoggerInterface $logger=null)
- {
- $this->smtp = new SMTP($logger);
- $this->message = new Message();
- }
-
- /**
- * set server and port
- * @param string $host server
- * @param int $port port
- * @param string $secure ssl tls tlsv1.0 tlsv1.1 tlsv1.2
- * @return $this
- */
- public function setServer($host, $port, $secure=null)
- {
- $this->smtp->setServer($host, $port, $secure);
- return $this;
- }
-
- /**
- * auth with server
- * @param string $username
- * @param string $password
- * @return $this
- */
- public function setAuth($username, $password)
- {
- $this->smtp->setAuth($username, $password);
- return $this;
- }
-
- /**
- * auth oauthbearer with server
- * @param string $accessToken
- * @return $this
- */
- public function setOAuth($accessToken)
- {
- $this->smtp->setOAuth($accessToken);
- return $this;
- }
-
- /**
- * set mail from
- * @param string $name
- * @param string $email
- * @return $this
- */
- public function setFrom($name, $email)
- {
- $this->message->setFrom($name, $email);
- return $this;
- }
-
- /**
- * set fake mail from
- * @param string $name
- * @param string $email
- * @return $this
- */
- public function setFakeFrom($name, $email)
- {
- $this->message->setFakeFrom($name, $email);
- return $this;
- }
-
- /**
- * add mail receiver
- * @param string $name
- * @param string $email
- * @return $this
- */
- public function addTo($name, $email)
- {
- $this->message->addTo($name, $email);
- return $this;
- }
-
- /**
- * add cc mail receiver
- * @param string $name
- * @param string $email
- * @return $this
- */
- public function addCc($name, $email)
- {
- $this->message->addCc($name, $email);
- return $this;
- }
-
- /**
- * add bcc mail receiver
- * @param string $name
- * @param string $email
- * @return $this
- */
- public function addBcc($name, $email)
- {
- $this->message->addBcc($name, $email);
- return $this;
- }
-
- /**
- * set mail subject
- * @param string $subject
- * @return $this
- */
- public function setSubject($subject)
- {
- $this->message->setSubject($subject);
- return $this;
- }
-
- /**
- * set mail body
- * @param string $body
- * @return $this
- */
- public function setBody($body)
- {
- $this->message->setBody($body);
- return $this;
- }
-
- /**
- * add mail attachment
- * @param $name
- * @param $path
- * @return $this
- */
- public function addAttachment($name, $path)
- {
- $this->message->addAttachment($name, $path);
- return $this;
- }
-
- /**
- * Send the message...
- * @return boolean
- */
- public function send()
- {
- return $this->smtp->send($this->message);
- }
-
- }
|