for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Genkgo\Mail\Protocol\Imap\Request;
use Genkgo\Mail\Protocol\Imap\FlagParenthesizedList;
use Genkgo\Mail\Protocol\Imap\MailboxName;
use Genkgo\Mail\Protocol\Imap\Tag;
use Genkgo\Mail\Stream\StringStream;
use Genkgo\Mail\StreamInterface;
/**
* Class AppendCommand
* @package Genkgo\Mail\Protocol\Imap\Request
*/
final class AppendCommand extends AbstractCommand
{
* @var Tag
private $tag;
* @var MailboxName
private $mailbox;
* @var FlagParenthesizedList|null
private $flags;
* @var int
private $size;
* @var \DateTimeImmutable|null
private $internalDate;
* AppendCommand constructor.
* @param Tag $tag
* @param MailboxName $mailbox
* @param int $size
* @param FlagParenthesizedList|null $flags
* @param \DateTimeImmutable|null $internalDate
public function __construct(
Tag $tag,
MailboxName $mailbox,
int $size,
FlagParenthesizedList $flags = null,
\DateTimeImmutable $internalDate = null
)
$this->tag = $tag;
$this->mailbox = $mailbox;
$this->flags = $flags;
$this->size = $size;
$this->internalDate = $internalDate;
}
* @return StreamInterface
protected function createStream(): StreamInterface
return new StringStream(
sprintf(
'APPEND %s %s%s{%s}',
(string)$this->mailbox,
$this->flags ? (string)$this->flags . ' ' : '',
$this->internalDate ? '"'.$this->internalDate->format('d-D-Y H:i:sO') . '" ' : '',
(string)$this->size
);
* @return Tag
public function getTag(): Tag
return $this->tag;