Introduce interface for emailing and create email classes
This commit is contained in:
parent
915abe8a33
commit
2b8f067715
6 changed files with 314 additions and 74 deletions
71
src/Object/EMail/IEmail.php
Normal file
71
src/Object/EMail/IEmail.php
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Object\EMail;
|
||||
|
||||
use Friendica\Util\Emailer;
|
||||
|
||||
/**
|
||||
* Interface for a single mail, which can be send through Emailer::send()
|
||||
*
|
||||
* @see Emailer::send()
|
||||
*/
|
||||
interface IEmail
|
||||
{
|
||||
/**
|
||||
* Gets the senders name for this email
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function getFromName();
|
||||
|
||||
/**
|
||||
* Gets the senders email address for this email
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function getFromEmail();
|
||||
|
||||
/**
|
||||
* Gets the UID of the sender of this email
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
function getRecipientUid();
|
||||
|
||||
/**
|
||||
* Gets the reply-to address for this email
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function getReplyTo();
|
||||
|
||||
/**
|
||||
* Gets the senders email address
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function getToEmail();
|
||||
|
||||
/**
|
||||
* Gets the subject of this email
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function getSubject();
|
||||
|
||||
/**
|
||||
* Gets the message body of this email (either html or plaintext)
|
||||
*
|
||||
* @param boolean $text True, if returned as plaintext
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function getMessage(bool $text = false);
|
||||
|
||||
/**
|
||||
* Gets any additional mail header
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function getAdditionalMailHeader();
|
||||
}
|
35
src/Object/EMail/ItemCCEMail.php
Normal file
35
src/Object/EMail/ItemCCEMail.php
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Object\EMail;
|
||||
|
||||
use Friendica\App;
|
||||
use Friendica\App\BaseURL;
|
||||
use Friendica\Content\Text\HTML;
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Object\EMail;
|
||||
|
||||
/**
|
||||
* Class for creating CC emails based on a received item
|
||||
*/
|
||||
class ItemCCEMail extends EMail
|
||||
{
|
||||
public function __construct(App $a, L10n $l10n, BaseURL $baseUrl, array $item, string $toEmail, string $authorThumb)
|
||||
{
|
||||
$disclaimer = '<hr />' . $l10n->t('This message was sent to you by %s, a member of the Friendica social network.', $a->user['username'])
|
||||
. '<br />';
|
||||
$disclaimer .= $l10n->t('You may visit them online at %s', $baseUrl . '/profile/' . $a->user['nickname']) . EOL;
|
||||
$disclaimer .= $l10n->t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
|
||||
if (!$item['title'] == '') {
|
||||
$subject = EMail::encodeHeader($item['title'], 'UTF-8');
|
||||
} else {
|
||||
$subject = Email::encodeHeader('[Friendica]' . ' ' . $l10n->t('%s posted an update.', $a->user['username']), 'UTF-8');
|
||||
}
|
||||
$link = '<a href="' . $baseUrl . '/profile/' . $a->user['nickname'] . '"><img src="' . $authorThumb . '" alt="' . $a->user['username'] . '" /></a><br /><br />';
|
||||
$html = Item::prepareBody($item);
|
||||
$message = '<html><body>' . $link . $html . $disclaimer . '</body></html>';;
|
||||
|
||||
parent::__construct($a->user['username'], $a->user['email'], $a->user['email'], $toEmail,
|
||||
$subject, $message, HTML::toPlaintext($html . $disclaimer));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue