Overview
  • Namespace
  • Class

Namespaces

  • Omines
    • DirectAdmin
      • Context
      • Objects
        • Database
        • Domains
        • Email
        • Users
      • Utility

Classes

  • Omines\DirectAdmin\Context\AdminContext
  • Omines\DirectAdmin\Context\BaseContext
  • Omines\DirectAdmin\Context\ResellerContext
  • Omines\DirectAdmin\Context\UserContext
  • Omines\DirectAdmin\DirectAdmin
  • Omines\DirectAdmin\Objects\BaseObject
  • Omines\DirectAdmin\Objects\Database
  • Omines\DirectAdmin\Objects\Database\AccessHost
  • Omines\DirectAdmin\Objects\Domain
  • Omines\DirectAdmin\Objects\DomainObject
  • Omines\DirectAdmin\Objects\Domains\Subdomain
  • Omines\DirectAdmin\Objects\Email\Forwarder
  • Omines\DirectAdmin\Objects\Email\Mailbox
  • Omines\DirectAdmin\Objects\Email\MailObject
  • Omines\DirectAdmin\Objects\Users\Admin
  • Omines\DirectAdmin\Objects\Users\Reseller
  • Omines\DirectAdmin\Objects\Users\User
  • Omines\DirectAdmin\Utility\Conversion

Exceptions

  • Omines\DirectAdmin\DirectAdminException
 1 <?php
 2 
 3 /*
 4  * DirectAdmin API Client
 5  * (c) Omines Internetbureau B.V. - https://omines.nl/
 6  *
 7  * For the full copyright and license information, please view the LICENSE
 8  * file that was distributed with this source code.
 9  */
10 
11 namespace Omines\DirectAdmin\Objects\Email;
12 
13 use Omines\DirectAdmin\Objects\Domain;
14 
15 /**
16  * Encapsulates an email forwarder.
17  *
18  * @author Niels Keurentjes <niels.keurentjes@omines.com>
19  */
20 class Forwarder extends MailObject
21 {
22     /** @var string[] */
23     private $recipients;
24 
25     /**
26      * Construct the object.
27      *
28      * @param string $prefix The part before the @ in the address
29      * @param Domain $domain The containing domain
30      * @param array|string $recipients Array or string containing the recipients
31      */
32     public function __construct($prefix, Domain $domain, $recipients)
33     {
34         parent::__construct($prefix, $domain);
35         $this->recipients = is_string($recipients) ? array_map('trim', explode(',', $recipients)) : $recipients;
36     }
37 
38     /**
39      * Creates a new forwarder.
40      *
41      * @param Domain $domain
42      * @param string $prefix
43      * @param string|string[] $recipients
44      * @return Forwarder
45      */
46     public static function create(Domain $domain, $prefix, $recipients)
47     {
48         $domain->invokePost('EMAIL_FORWARDERS', 'create', [
49             'user' => $prefix,
50             'email' => is_array($recipients) ? implode(',', $recipients) : $recipients,
51         ]);
52         return new self($prefix, $domain, $recipients);
53     }
54 
55     /**
56      * Deletes the forwarder.
57      */
58     public function delete()
59     {
60         $this->invokeDelete('EMAIL_FORWARDERS', 'select0');
61     }
62 
63     /**
64      * Returns a list of the recipients of this forwarder.
65      *
66      * @return string[]
67      */
68     public function getRecipients()
69     {
70         return $this->recipients;
71     }
72 
73     /**
74      * Returns the list of valid aliases for this account.
75      *
76      * @return string[]
77      */
78     public function getAliases()
79     {
80         return array_map(function ($domain) {
81             return $this->getPrefix() . '@' . $domain;
82         }, $this->getDomain()->getDomainNames());
83     }
84 }
85 
API documentation generated by ApiGen