mirror of
https://github.com/espocrm/espocrm.git
synced 2026-06-28 15:06:06 +00:00
mail classes comments and type hinting
This commit is contained in:
@@ -29,16 +29,10 @@
|
||||
|
||||
namespace Espo\Core\Mail;
|
||||
|
||||
|
||||
use \Espo\Entities\Email;
|
||||
use Espo\Entities\Email;
|
||||
|
||||
class FiltersMatcher
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected function matchTo(Email $email, $filter)
|
||||
{
|
||||
if ($email->get('to')) {
|
||||
|
||||
@@ -31,25 +31,35 @@ namespace Espo\Core\Mail;
|
||||
|
||||
use Laminas\Mime\Mime as Mime;
|
||||
|
||||
use \Espo\ORM\Entity;
|
||||
use \Espo\ORM\Email;
|
||||
use Espo\Entities\Email;
|
||||
|
||||
use Espo\Core\{
|
||||
Mail\MessageWrapper,
|
||||
ORM\EntityManager,
|
||||
Utils\Config,
|
||||
Notificators\Notificator,
|
||||
};
|
||||
|
||||
use Espo\Notificators\EmailNotificator;
|
||||
|
||||
/**
|
||||
* Imports an email message into CRM. Handles duplicate checking, parent look-up.
|
||||
*/
|
||||
class Importer
|
||||
{
|
||||
private $entityManager;
|
||||
|
||||
private $config;
|
||||
private $notificator;
|
||||
|
||||
private $filtersMatcher;
|
||||
|
||||
private $notificator = null;
|
||||
|
||||
public function __construct($entityManager, $config, $notificator = null)
|
||||
public function __construct(EntityManager $entityManager, Config $config, ?Notificator $notificator = null)
|
||||
{
|
||||
$this->entityManager = $entityManager;
|
||||
$this->config = $config;
|
||||
$this->filtersMatcher = new FiltersMatcher();
|
||||
$this->notificator = $notificator;
|
||||
|
||||
$this->filtersMatcher = new FiltersMatcher();
|
||||
}
|
||||
|
||||
protected function getEntityManager()
|
||||
@@ -74,16 +84,16 @@ class Importer
|
||||
|
||||
public function importMessage(
|
||||
string $parserType,
|
||||
$message,
|
||||
$assignedUserId = null,
|
||||
$teamsIdList = [],
|
||||
$userIdList = [],
|
||||
$filterList = [],
|
||||
$fetchOnlyHeader = false,
|
||||
$folderData = null)
|
||||
{
|
||||
MessageWrapper $message,
|
||||
?string $assignedUserId = null,
|
||||
array $teamsIdList = [],
|
||||
array $userIdList = [],
|
||||
iterable $filterList = [],
|
||||
bool $fetchOnlyHeader = false,
|
||||
?array $folderData = null
|
||||
) : ?Email {
|
||||
$parser = $message->getParser();
|
||||
$parserClassName = '\\Espo\\Core\\Mail\\Parsers\\' . $parserType;
|
||||
$parserClassName = 'Espo\\Core\\Mail\\Parsers\\' . $parserType;
|
||||
|
||||
if (!$parser || get_class($parser) !== $parserClassName) {
|
||||
$parser = new $parserClassName($this->getEntityManager());
|
||||
@@ -154,7 +164,7 @@ class Importer
|
||||
}
|
||||
|
||||
if ($this->getFiltersMatcher()->match($email, $filterList, true)) {
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($parser->checkMessageAttribute($message, 'message-Id') && $parser->getMessageAttribute($message, 'message-Id')) {
|
||||
@@ -165,7 +175,7 @@ class Importer
|
||||
$email->set('messageIdInternal', $messageId . '-' . $parser->getMessageAttribute($message, 'delivered-To'));
|
||||
}
|
||||
if (stripos($messageId, '@espo-system') !== false) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -407,7 +417,7 @@ class Importer
|
||||
$this->getEntityManager()->getPdo()->query('UNLOCK TABLES');
|
||||
}
|
||||
|
||||
protected function findParent(Entity $email, $emailAddress)
|
||||
protected function findParent(Email $email, $emailAddress)
|
||||
{
|
||||
$contact = $this->getEntityManager()->getRepository('Contact')->where(array(
|
||||
'emailAddress' => $emailAddress
|
||||
@@ -444,7 +454,7 @@ class Importer
|
||||
}
|
||||
}
|
||||
|
||||
protected function findDuplicate(Entity $email)
|
||||
protected function findDuplicate(Email $email)
|
||||
{
|
||||
if ($email->get('messageId')) {
|
||||
$duplicate = $this->getEntityManager()->getRepository('Email')->select(['id', 'status'])->where([
|
||||
@@ -456,7 +466,7 @@ class Importer
|
||||
}
|
||||
}
|
||||
|
||||
protected function processDuplicate(Entity $duplicate, $assignedUserId, $userIdList, $folderData, $teamsIdList)
|
||||
protected function processDuplicate(Email $duplicate, $assignedUserId, $userIdList, $folderData, $teamsIdList)
|
||||
{
|
||||
if ($duplicate->get('status') == 'Archived') {
|
||||
$this->getEntityManager()->getRepository('Email')->loadFromField($duplicate);
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
namespace Espo\Core\Mail;
|
||||
|
||||
use \Espo\Entities\Email;
|
||||
use Espo\Entities\Email;
|
||||
|
||||
class MessageWrapper
|
||||
{
|
||||
@@ -43,7 +43,7 @@ class MessageWrapper
|
||||
|
||||
private $zendMessage = null;
|
||||
|
||||
protected $zendMessageClass = '\Laminas\Mail\Storage\Message';
|
||||
protected $zendMessageClass = 'Laminas\Mail\Storage\Message';
|
||||
|
||||
protected $fullRawContent = null;
|
||||
|
||||
|
||||
@@ -29,13 +29,20 @@
|
||||
|
||||
namespace Espo\Core\Mail\Parsers;
|
||||
|
||||
use ZBateson\MailMimeParser\MailMimeParser as Parser;
|
||||
|
||||
use Espo\Entities\Email as EmailEntity;
|
||||
|
||||
/**
|
||||
* An adapter for MailMimeParser library.
|
||||
*/
|
||||
class MailMimeParser
|
||||
{
|
||||
private $entityManager;
|
||||
|
||||
private $parser = array();
|
||||
private $parser = [];
|
||||
|
||||
protected $messageHash = array();
|
||||
protected $messageHash = [];
|
||||
|
||||
public function __construct($entityManager)
|
||||
{
|
||||
@@ -50,7 +57,7 @@ class MailMimeParser
|
||||
protected function getParser()
|
||||
{
|
||||
if (!$this->parser) {
|
||||
$this->parser = new \ZBateson\MailMimeParser\MailMimeParser();
|
||||
$this->parser = new Parser();
|
||||
}
|
||||
|
||||
return $this->parser;
|
||||
@@ -149,7 +156,7 @@ class MailMimeParser
|
||||
return $addressList;
|
||||
}
|
||||
|
||||
public function fetchContentParts(\Espo\Entities\Email $email, $message, &$inlineAttachmentList = [])
|
||||
public function fetchContentParts(EmailEntity $email, $message, &$inlineAttachmentList = [])
|
||||
{
|
||||
$this->loadContent($message);
|
||||
|
||||
@@ -195,7 +202,7 @@ class MailMimeParser
|
||||
}
|
||||
|
||||
$attachmentObjList = $this->getMessage($message)->getAllAttachmentParts();
|
||||
$inlineIds = array();
|
||||
$inlineIds = [];
|
||||
|
||||
foreach ($attachmentObjList as $attachmentObj) {
|
||||
$attachment = $this->getEntityManager()->getEntity('Attachment');
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
|
||||
namespace Espo\Core\Mail\Parsers;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
class PhpMimeMailParser
|
||||
{
|
||||
private $entityManager;
|
||||
|
||||
@@ -29,8 +29,11 @@
|
||||
|
||||
namespace Espo\Core\Mail\Parsers\PhpMimeMailParser;
|
||||
|
||||
use \PhpMimeMailParser\Attachment;
|
||||
use PhpMimeMailParser\Attachment;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
class Parser extends \PhpMimeMailParser\Parser
|
||||
{
|
||||
public function getAttachments($include_inline = true)
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
|
||||
namespace Espo\Core\Mail\Parsers;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
class ZendMail
|
||||
{
|
||||
private $entityManager;
|
||||
|
||||
Reference in New Issue
Block a user