Neden benim dönüş yoluna dönmezse?

3 Cevap php

Ben mail fonksiyonunu kullanarak, php kullanıyorum:

$headers =  'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: admin@domain.com' . "\r\n";
$headers .= 'Reply-To: Admin <admin@domain.com>' . "\r\n";

// Return Path - 
$return_path = "bounce@domain.com";

$toUser... (all necessary variables)

if(mail($toUser,$subject,$body,$headers, "-f".$return_path)){
    echo "res=sent";
} else {
    echo "res=error";
    }

Ben, abXXX@kasbkjasbdka.com, 8hgb87@9ndksjc9ne.com gibi birkaç e-postalar test

(Vb, tüm geçersiz, varolmayan e-posta adresleri)

Neden benim bounce@domain.com gitmeyin??

3 Cevap

Ayrıca en sunucularında bir başlık kullanarak Return-Path ayarlamak mümkün olmalıdır:

$headers .= "Return-Path: bounce@domain.com\r\n";

Sen -f sonra bir boşluk eklemek gerekir. Ayrıca, neden yerine iso-8859-1 UTF-8 kullanmak değil mi? Bu deneyin:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$headers .= 'From: admin@domain.com' . "\r\n";
$headers .= 'Reply-To: Admin <admin@domain.com>' . "\r\n";

// Return Path
$return_path = 'bounce@domain.com';

/*
$toUser... (all necessary variables)
*/

if(mail($toUser, $subject, $body, $headers, '-f ' . $return_path)) {
 echo 'res=sent';
} else {
 echo 'res=error';
}

Bu sendmail yapılandırma nedeniyle olabilir. -F parametresi bunu desteklemek üzere yapılandırılmış bir komut satırı niteliği, yani sendmail ihtiyaçları gibi aracılığıyla taşınıyor.

Dan php.net:

The additional___parameters parameter can be used to pass additional flags as command line options to the program configured to be used when sending mail, as defined by the sendmail_path configuration setting. For example, this can be used to set the envelope sender address when using sendmail with the -f sendmail option.

Edit: Ben sadece Matthias Bynens' cevabın doğru olduğunu, gördüğünü gördüm this entry