I send EHLO command to gmail stmp. if response was success, it will send code 250. I try to catch the response code of gmail smtp. when my code like this
$fp = fsockopen("ssl://smtp.gmail.com", 465, $errNo, $errStr, 15);
if(empty($fp)){
echo $errNo.":".$errStr;
}else{
fputs($fp, "EHLO"."\r\n");
$rp = get_lines($fp);
$code = substr($rp,0,3);
echo $code;
fclose($fp);
}
function get_lines($fp){
while($str = fgets($fp)){
return $str;
}
}
why it always produce code 220 ? but when I append the php code with echo fgets($fp); like this
$fp = fsockopen("ssl://smtp.gmail.com", 465, $errNo, $errStr, 15);
if(empty($fp)){
echo $errNo.":".$errStr;
}else{
echo fgets($fp); //additional code
fputs($fp, "EHLO"."\r\n");
$rp = get_lines($fp);
$code = substr($rp,0,3);
echo $code;
fclose($fp);
}
function get_lines($fp){
while($str = fgets($fp)){
return $str;
}
}
the output like this:
220 mx.google.com ESMTP vu10sm20075869pbc.27 - gsmtp <<don't need this
250
code 250 has caught. but how to produce code 250 without additional command like echo fgets($fp); ?