139         \
Magento\Framework\Stdlib\DateTime\DateTime $date,
   140         \
Magento\Newsletter\Model\TemplateFactory $templateFactory,
   141         \
Magento\Newsletter\Model\ProblemFactory $problemFactory,
   143         \
Magento\Newsletter\Model\
Queue\TransportBuilder $transportBuilder,
   145         \
Magento\Framework\Data\Collection\AbstractDb $resourceCollection = 
null,
   156         $this->_templateFilter = $templateFilter;
   157         $this->_date = $date;
   158         $this->_templateFactory = $templateFactory;
   159         $this->_problemFactory = $problemFactory;
   160         $this->_subscribersCollection = $subscriberCollectionFactory->create();
   161         $this->_transportBuilder = $transportBuilder;
   163             TimezoneInterface::class
   174         parent::_construct();
   185         return $this->getQueueStatus() === 
null;
   196         if ($startAt === 
null || $startAt == 
'') {
   197             $this->setQueueStartAt(
null);
   199             $this->setQueueStartAt($this->timezone->convertConfigTimeToUtc($startAt));
   211     public function sendPerSubscriber(
$count = 20)
   213         if ($this->getQueueStatus() != self::STATUS_SENDING &&
   214             ($this->getQueueStatus() != self::STATUS_NEVER &&
   215             $this->getQueueStartAt())
   220         if (!$this->_subscribersCollection->getQueueJoinedFlag()) {
   221             $this->_subscribersCollection->useQueue($this);
   224         if ($this->_subscribersCollection->getSize() == 0) {
   229         $collection = $this->_subscribersCollection->useOnlyUnsent()->showCustomerInfo()->setPageSize(
   235         $this->_transportBuilder->setTemplateData(
   237                 'template_subject' => $this->getNewsletterSubject(),
   238                 'template_text' => $this->getNewsletterText(),
   239                 'template_styles' => $this->getNewsletterStyles(),
   240                 'template_filter' => $this->_templateFilter,
   241                 'template_type' => self::TYPE_HTML,
   247             $transport = $this->_transportBuilder->setTemplateOptions(
   248                 [
'area' => \
Magento\Framework\
App\Area::AREA_FRONTEND, 
'store' => 
$item->getStoreId()]
   250                 [
'subscriber' => 
$item]
   252                 [
'name' => $this->getNewsletterSenderName(), 
'email' => $this->getNewsletterSenderEmail()]
   254                 $item->getSubscriberEmail(),
   255                 $item->getSubscriberFullName()
   259                 $transport->sendMessage();
   260             } 
catch (\
Magento\Framework\Exception\MailException $e) {
   262                 $problem = $this->_problemFactory->create();
   268             $item->received($this);
   284         $this->setQueueFinishAt($this->_date->gmtDate());
   285         $this->setQueueStatus(self::STATUS_SENT);
   299         $data[
'template_id'] = $this->getTemplateId();
   300         $data[
'queue_status'] = $this->getQueueStatus();
   301         $data[
'queue_start_at'] = $this->getQueueStartAt();
   302         $data[
'queue_finish_at'] = $this->getQueueFinishAt();
   314         $this->
_getResource()->addSubscribersToQueue($this, $subscriberIds);
   326         $this->_saveStoresFlag = (bool)
$value;
   350         $this->_stores = $storesIds;
   361         if (!$this->_stores) {
   362             $this->_stores = $this->
_getResource()->getStores($this);
   375         if ($this->_template === 
null) {
   376             $this->_template = $this->_templateFactory->create()->load($this->getTemplateId());
   398         return $this->getNewsletterType();
 
setQueueStartAtByString($startAt)
 
addSubscribersToQueue(array $subscriberIds)
 
setSaveStoresFlag($value)
 
setStores(array $storesIds)
 
__construct(\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Newsletter\Model\Template\Filter $templateFilter, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Newsletter\Model\TemplateFactory $templateFactory, \Magento\Newsletter\Model\ProblemFactory $problemFactory, \Magento\Newsletter\Model\ResourceModel\Subscriber\CollectionFactory $subscriberCollectionFactory, \Magento\Newsletter\Model\Queue\TransportBuilder $transportBuilder, \Magento\Framework\Model\ResourceModel\AbstractResource $resource=null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection=null, array $data=[], TimezoneInterface $timezone=null)