mail changes

This commit is contained in:
Flo 2024-09-14 21:52:57 +00:00
parent ed03bb79d6
commit 71b8a29527
3 changed files with 17 additions and 0 deletions

View File

@ -26,6 +26,7 @@ final class Version20240911191301 extends AbstractMigration
recipient varchar(255) NOT NULL, recipient varchar(255) NOT NULL,
sender varchar(255) NULL, sender varchar(255) NULL,
sender_name varchar(255) NULL, sender_name varchar(255) NULL,
failed_at datetime NULL,
created_at datetime NOT NULL, created_at datetime NOT NULL,
PRIMARY KEY (id) PRIMARY KEY (id)
);"; );";

View File

@ -33,6 +33,9 @@ class Mail {
/** @ORM\Column(name="sender_name", type="string", nullable="true") */ /** @ORM\Column(name="sender_name", type="string", nullable="true") */
private ?string $senderName; private ?string $senderName;
/** @ORM\Column(name="failed_at", type="datetime", nullable="true") */
private ?DateTime $failedAt;
/** @ORM\Column(name="created_at", type="datetime") */ /** @ORM\Column(name="created_at", type="datetime") */
private DateTime $createdAt; private DateTime $createdAt;
@ -41,6 +44,7 @@ class Mail {
$now = new DateTime(); $now = new DateTime();
$this->setCreatedAt($now); $this->setCreatedAt($now);
$this->setFailedAt(null);
} }
@ -103,6 +107,15 @@ class Mail {
$this->senderName = $senderName; $this->senderName = $senderName;
} }
public function getFailedAt(): ?DateTime
{
return $this->failedAt;
}
public function setFailedAt(?DateTime $failedAt): void
{
$this->failedAt = $failedAt;
}
public function getCreatedAt(): DateTime { public function getCreatedAt(): DateTime {
return $this->createdAt; return $this->createdAt;
} }

View File

@ -7,6 +7,7 @@ namespace Bee\Infrastructure\Mail\Service;
use Bee\Data\Business\Entity\Mail; use Bee\Data\Business\Entity\Mail;
use Bee\Data\Business\Manager\EntityManager; use Bee\Data\Business\Manager\EntityManager;
use Bee\Data\Business\Repository\MailRepository; use Bee\Data\Business\Repository\MailRepository;
use DateTime;
use Exception; use Exception;
use Latte\Engine; use Latte\Engine;
use Nette\Mail\Mailer; use Nette\Mail\Mailer;
@ -76,6 +77,8 @@ class MailService
$this->entityManager->remove($mailToSend); $this->entityManager->remove($mailToSend);
} catch (SendMailFailedException $e) { } catch (SendMailFailedException $e) {
// log is done withing sendMail // log is done withing sendMail
$mailToSend->setFailedAt(new DateTime());
$this->entityManager->persist($mailToSend);
} }
$this->entityManager->flush(); $this->entityManager->flush();
} }