<?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; } }