<?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);
|
}
|
|
}
|