Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
1 / 1
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3declare(strict_types=1);
4
5/** @license For full copyright and license information, please see the LICENSE.md file. */
6
7namespace App\Modules\Mail\Domain\Contract;
8
9defined('AMMONLY_APP') || exit('Direct script access is forbidden.');
10
11use App\Modules\Mail\Domain\Model\MailOutgoingMessageDto;
12use App\Modules\Mail\Domain\Model\MailSendResultDto;
13
14/**
15 * Webmail Sender Service Contract.
16 *
17 * Dispatches outgoing MIME messages over SMTP and stores copies in Sent folders.
18 *
19 * @package App\Modules\Mail\Domain\Contract
20 */
21interface WebmailSenderServiceInterface
22{
23    /**
24     * Sends message drafted in compose view.
25     *
26     * @param int                    $userId  Current user ID.
27     * @param MailOutgoingMessageDto $message Outgoing message payload.
28     * @return MailSendResultDto Send status DTO with message ID or error.
29     */
30    public function sendMessage(int $userId, MailOutgoingMessageDto $message): MailSendResultDto;
31
32    /**
33     * Stores message draft in Drafts folder.
34     *
35     * @param int                    $userId  Current user ID.
36     * @param MailOutgoingMessageDto $message Outgoing message payload.
37     * @return string Stored draft message UID.
38     */
39    public function saveDraft(int $userId, MailOutgoingMessageDto $message): string;
40}