Hi Stefano,
This bug causes many problems such as marking wrong emails as bounced or not detecting bounced emails.
I have sent you a mail at the past but it is not corrected as of Bounce 1.0.7
This code is wrong:
$x = stripos($line, 'original-recipient: rfc822;');
if ($x === 0) {
$email = substr($line, 28);
$email = $this->clean_email($email);
return $email;
}
$x = stripos($line, 'final-recipient: rfc822;');
if ($x === 0) {
$email = substr($line, 25);
$email = $this->clean_email($email);
return $email;
}
$x = stripos($line, 'rcpt to:');
if ($x !== false) {
$email = substr($line, $x + 8);
$email = str_replace('<', '', $email);
$email = str_replace('>', '', $email);
return trim($email);
}
It must be:
$x = stripos($line, 'original-recipient: rfc822;');
if ($x === 0) {
$email = substr($line, 27);
$email = $this->clean_email($email);
return $email;
}
$x = stripos($line, 'final-recipient: rfc822;');
if ($x === 0) {
$email = substr($line, 24);
$email = $this->clean_email($email);
return $email;
}
$x = stripos($line, 'rcpt to:');
if ($x !== false) {
$email = substr($line, $x + 8);
$email = str_replace('<', '', $email);
$email = str_replace('>', '', $email);
return trim($email);
}
28 must be 27 (there are 27 characters here, 28 cuts from wrong position)
and so 25 must be 24; 8 is ok (I have included it to display that it is clearly a bug; pls. look at substr syntax)
It causes many problems such as marking wrong emails as bounced or not detecting bounced emails. I can give it by examples but currently I don’t think it is necessary as it can be clearly seen that it is a bug.
Waiting for the fix,
Sincerely.