ImapConfig.php 2.0 KB
<?php
namespace Lib\Imap;

class ImapConfig {

    protected string $host = '';
    protected string $password = '';
    protected string $email = '';
    protected bool $debug = false;

    /**
     * 构造
     * ImapConfig constructor.
     * @param array $option
     */
    public function __construct(array $option = [])
    {
        if(!empty($option['email']))    $this->setEmail($option['email']);
        if(!empty($option['password']))    $this->setPassword($option['password']);
        if(!empty($option['host']))    $this->setHost($option['host']);
        if(!empty($option['debug']))    $this->debug($option['debug']);
    }


    /**
     * @param string $email
     */
    public function setEmail(string $email): static
    {
        $this->email = $email;
        return $this;
    }


    /**
     * @param string $host
     */
    public function setHost(string $host): static
    {
        $this->host = $host;
        // 是否带协议
        if(!str_contains($this->host, '//')){
            $this->host = 'ssl://'.$this->host;
        }
        // 是否带端口
        if(substr_count($this->host,':')==1){
            $this->host = $this->host.':993';
        }
        return $this;
    }

    /**
     * @param string $password
     */
    public function setPassword(string $password): static
    {
        $this->password = $password;
        return $this;
    }

    /**
     * @return string
     */
    public function getEmail(): string
    {
        return $this->email;
    }

    /**
     * @return string
     */
    public function getHost(): string
    {
        return $this->host;
    }

    /**
     * @return string
     */
    public function getPassword(): string
    {
        return $this->password;
    }


    /**
     * @param bool $debug
     */
    public function debug(bool $debug = true): static
    {
        $this->debug = $debug;
        return $this;
    }

    /**
     * @return bool
     */
    public function isDebug(): bool
    {
        return $this->debug;
    }
}