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 */ public 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, ''); } }