Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
digitalascetic/mail / Service / MailProviderInterface.php
Size: Mime:
<?php


namespace DigitalAscetic\MailBundle\Service;

use DigitalAscetic\MailBundle\Entity\Message;
use DigitalAscetic\MailBundle\Entity\MessageAttachment;
use DigitalAscetic\MailBundle\Entity\MessageList;
use DigitalAscetic\MailBundle\Entity\MailConfigInterface;


interface MailProviderInterface
{
    /**
     * @param MailConfigInterface $mailConfig
     * @param array $optParams
     * @return MessageList|null
     * @opt_param string from From email address
     * @opt_param string to To email address
     * @opt_param string in mailbox identifier
     * @opt_param string in page identifier of page requested
     * @opt_param string in maxResults number of results for each page
     */
    public function listEmails(MailConfigInterface $mailConfig, array $optParams = array()): ?MessageList;

    /**
     * @param MailConfigInterface $mailConfig
     * @param array $optParams
     * @return Message|null
     * @opt_param string id Id email message
     * @opt_param string in mailbox identifier
     */
    public function getMessage(MailConfigInterface $mailConfig, array $optParams = array()): ?Message;

    /**
     * @param MailConfigInterface $mailConfig
     * @param array $optParams
     * @opt_param string id Id email message
     * @opt_param string in mailbox identifier
     */
    public function markAsRead(MailConfigInterface $mailConfig, array $optParams = array()): void;

    /**
     * @param MailConfigInterface $mailConfig
     * @param string $messageId
     * @param array $optParams
     * @opt_param string in mailbox identifier
     * @return bool
     */
    public function deleteMessage(MailConfigInterface $mailConfig, string $messageId, array $optParams = array()): bool;

    /**
     * @param MailConfigInterface $mailConfig
     * @param string[] $messageIds
     * @param array $optParams
     * @opt_param string in mailbox identifier
     * @return bool
     */
    public function batchDelete(MailConfigInterface $mailConfig, array $messageIds, array $optParams = array()): bool;

    /**
     * @param MailConfigInterface $mailConfig
     * @param array $optParams
     * @return MessageAttachment|null
     * @opt_param string attachmentId Id Attachment
     * @opt_param string messageId Id of message
     */
    public function getMessageAttachment(
        MailConfigInterface $mailConfig,
        array $optParams = array()
    ): ?MessageAttachment;

    /**
     * @param MailConfigInterface $mailConfig
     * @param Message $message
     * @return bool
     */
    public function sendMessage(MailConfigInterface $mailConfig, Message $message): bool;

    /**
     * @param MailConfigInterface $mailConfig
     * @opt_param string pattern https://www.php.net/manual/en/function.imap-list.php
     * @return string[]|null
     */
    public function getFolders(MailConfigInterface $mailConfig, array $optParams = array()): ?array;
}