summaryrefslogtreecommitdiff
path: root/app/Core/Mail
diff options
context:
space:
mode:
Diffstat (limited to 'app/Core/Mail')
-rw-r--r--app/Core/Mail/Client.php41
-rw-r--r--app/Core/Mail/ClientInterface.php15
-rw-r--r--app/Core/Mail/Transport/Mail.php28
-rw-r--r--app/Core/Mail/Transport/Sendmail.php4
-rw-r--r--app/Core/Mail/Transport/Smtp.php8
5 files changed, 62 insertions, 34 deletions
diff --git a/app/Core/Mail/Client.php b/app/Core/Mail/Client.php
index ee3bdead..334f8816 100644
--- a/app/Core/Mail/Client.php
+++ b/app/Core/Mail/Client.php
@@ -9,7 +9,7 @@ use Kanboard\Core\Base;
/**
* Mail Client
*
- * @package mail
+ * @package Kanboard\Core\Mail
* @author Frederic Guillot
*/
class Client extends Base
@@ -38,30 +38,35 @@ class Client extends Base
* Send a HTML email
*
* @access public
- * @param string $email
- * @param string $name
+ * @param string $recipientEmail
+ * @param string $recipientName
* @param string $subject
* @param string $html
* @return Client
*/
- public function send($email, $name, $subject, $html)
+ public function send($recipientEmail, $recipientName, $subject, $html)
{
- if (! empty($email)) {
- $this->queueManager->push(EmailJob::getInstance($this->container)
- ->withParams($email, $name, $subject, $html, $this->getAuthor())
- );
+ if (! empty($recipientEmail)) {
+ $this->queueManager->push(EmailJob::getInstance($this->container)->withParams(
+ $recipientEmail,
+ $recipientName,
+ $subject,
+ $html,
+ $this->getAuthorName(),
+ $this->getAuthorEmail()
+ ));
}
return $this;
}
/**
- * Get email author
+ * Get author name
*
* @access public
* @return string
*/
- public function getAuthor()
+ public function getAuthorName()
{
$author = 'Kanboard';
@@ -73,6 +78,22 @@ class Client extends Base
}
/**
+ * Get author email
+ *
+ * @access public
+ * @return string
+ */
+ public function getAuthorEmail()
+ {
+ if ($this->userSession->isLogged()) {
+ $userData = $this->userSession->getAll();
+ return ! empty($userData['email']) ? $userData['email'] : '';
+ }
+
+ return '';
+ }
+
+ /**
* Get mail transport instance
*
* @access public
diff --git a/app/Core/Mail/ClientInterface.php b/app/Core/Mail/ClientInterface.php
index 66263a98..3bfa32d3 100644
--- a/app/Core/Mail/ClientInterface.php
+++ b/app/Core/Mail/ClientInterface.php
@@ -5,7 +5,7 @@ namespace Kanboard\Core\Mail;
/**
* Mail Client Interface
*
- * @package mail
+ * @package Kanboard\Core\Mail
* @author Frederic Guillot
*/
interface ClientInterface
@@ -14,11 +14,12 @@ interface ClientInterface
* Send a HTML email
*
* @access public
- * @param string $email
- * @param string $name
- * @param string $subject
- * @param string $html
- * @param string $author
+ * @param string $recipientEmail
+ * @param string $recipientName
+ * @param string $subject
+ * @param string $html
+ * @param string $authorName
+ * @param string $authorEmail
*/
- public function sendEmail($email, $name, $subject, $html, $author);
+ public function sendEmail($recipientEmail, $recipientName, $subject, $html, $authorName, $authorEmail = '');
}
diff --git a/app/Core/Mail/Transport/Mail.php b/app/Core/Mail/Transport/Mail.php
index c99cc8ba..0d819f77 100644
--- a/app/Core/Mail/Transport/Mail.php
+++ b/app/Core/Mail/Transport/Mail.php
@@ -12,7 +12,7 @@ use Kanboard\Core\Mail\ClientInterface;
/**
* PHP Mail Handler
*
- * @package transport
+ * @package Kanboard\Core\Mail\Transport
* @author Frederic Guillot
*/
class Mail extends Base implements ClientInterface
@@ -21,20 +21,26 @@ class Mail extends Base implements ClientInterface
* Send a HTML email
*
* @access public
- * @param string $email
- * @param string $name
- * @param string $subject
- * @param string $html
- * @param string $author
+ * @param string $recipientEmail
+ * @param string $recipientName
+ * @param string $subject
+ * @param string $html
+ * @param string $authorName
+ * @param string $authorEmail
*/
- public function sendEmail($email, $name, $subject, $html, $author)
+ public function sendEmail($recipientEmail, $recipientName, $subject, $html, $authorName, $authorEmail = '')
{
try {
$message = Swift_Message::newInstance()
->setSubject($subject)
- ->setFrom(array($this->helper->mail->getMailSenderAddress() => $author))
- ->setTo(array($email => $name))
- ->setBody($html, 'text/html');
+ ->setFrom($this->helper->mail->getMailSenderAddress(), $authorName)
+ ->setTo(array($recipientEmail => $recipientName));
+
+ if (! empty($authorEmail)) {
+ $message->setReplyTo($authorEmail);
+ }
+
+ $message->setBody($html, 'text/html');
Swift_Mailer::newInstance($this->getTransport())->send($message);
} catch (Swift_TransportException $e) {
@@ -46,7 +52,7 @@ class Mail extends Base implements ClientInterface
* Get SwiftMailer transport
*
* @access protected
- * @return \Swift_Transport|\Swift_MailTransport|\Swift_SmtpTransport|\Swift_SendmailTransport
+ * @return \Swift_Transport
*/
protected function getTransport()
{
diff --git a/app/Core/Mail/Transport/Sendmail.php b/app/Core/Mail/Transport/Sendmail.php
index 039be705..a1a2cbd6 100644
--- a/app/Core/Mail/Transport/Sendmail.php
+++ b/app/Core/Mail/Transport/Sendmail.php
@@ -7,7 +7,7 @@ use Swift_SendmailTransport;
/**
* PHP Mail Handler
*
- * @package transport
+ * @package Kanboard\Core\Mail\Transport
* @author Frederic Guillot
*/
class Sendmail extends Mail
@@ -16,7 +16,7 @@ class Sendmail extends Mail
* Get SwiftMailer transport
*
* @access protected
- * @return \Swift_Transport|\Swift_MailTransport|\Swift_SmtpTransport|\Swift_SendmailTransport
+ * @return \Swift_Transport
*/
protected function getTransport()
{
diff --git a/app/Core/Mail/Transport/Smtp.php b/app/Core/Mail/Transport/Smtp.php
index 815dde5d..7338a81e 100644
--- a/app/Core/Mail/Transport/Smtp.php
+++ b/app/Core/Mail/Transport/Smtp.php
@@ -7,7 +7,7 @@ use Swift_SmtpTransport;
/**
* PHP Mail Handler
*
- * @package transport
+ * @package Kanboard\Core\Mail\Transport
* @author Frederic Guillot
*/
class Smtp extends Mail
@@ -16,7 +16,7 @@ class Smtp extends Mail
* Get SwiftMailer transport
*
* @access protected
- * @return \Swift_Transport|\Swift_MailTransport|\Swift_SmtpTransport|\Swift_SendmailTransport
+ * @return \Swift_Transport
*/
protected function getTransport()
{
@@ -29,8 +29,8 @@ class Smtp extends Mail
$transport->setStreamOptions(array(
'ssl' => array(
'allow_self_signed' => true,
- 'verify_peer' => false,
- 'verify_peer_name' => false,
+ 'verify_peer' => false,
+ 'verify_peer_name' => false,
)
));
}