function SMTP::parseHelloFields

5.x SMTP.php protected SMTP::parseHelloFields($type)

Parse a reply to HELO/EHLO command to discover server extensions. In case of HELO, the only parameter that can be discovered is a server name.

Parameters

string $type `HELO` or `EHLO`:

File

inc/PHPMailer/src/SMTP.php, line 769

Class

SMTP
PHPMailer RFC821 SMTP email transport class. Implements RFC 821 SMTP commands and provides some utility methods for sending mail to an SMTP server.

Code

protected function parseHelloFields($type) {
  $this->server_caps =[];
  $lines = explode("\n", $this->helo_rply);

  foreach ($lines as $n => $s) {
    //First 4 chars contain response code followed by - or space
    $s = trim(substr($s, 4));
    if (empty($s)) {
      continue;
    }
    $fields = explode(' ', $s);
    if (!empty($fields)) {
      if (!$n) {
        $name = $type;
        $fields = $fields[0];
      }
      else {
        $name = array_shift($fields);
        switch ($name) {
          case 'SIZE':
            $fields = ($fields ? $fields[0] : 0);
            break;
          case 'AUTH':
            if (!is_array($fields)) {
              $fields =[];
            }
            break;
          default:
            $fields = true;
        }
      }
      $this->server_caps[$name] = $fields;
    }
  }
}