host = ($host) ? $host : ini_get('SMTP'); if(!$this->host) $this->host = 'localhost'; $this->port = ($port) ? $port : ini_get('smtp_port'); if(!$this->port) $this->port = 25; $this->timeout = $timeout; } /** * @inheritdoc * * @return array */ function check() { $f = @fsockopen($this->host, $this->port, $errno, $errstr, $this->timeout); if(!$f) { return array( EnvironmentCheck::ERROR, sprintf("Couldn't connect to SMTP on %s:%s (Error: %s %s)", $this->host, $this->port, $errno, $errstr) ); } fwrite($f, "HELO its_me\r\n"); $response = fread($f, 26); if(substr($response, 0, 3) != '220') { return array( EnvironmentCheck::ERROR, sprintf("Invalid mail server response: %s", $response) ); } return array(EnvironmentCheck::OK, ''); } }