sendmail pakt verkeerde "return-path" bij php mail()

Netjes de mail() functie in PHP aan het werk. [code:1:2ca972b5ec] $to = 'mail@mij.nl'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: mij@work.nlrn' $headers .= 'Return-Path: me@work.nlrn'; // en zo nog wat headers

if(mail($to, $subject, $message, $headers))
{echo "hop";} else {echo "flop";}
[/code:1:2ca972b5ec]

Mail komt keurig aan bij me ene provider, en voor geen meter bij me andere. Dus…spamfilter ? Blijkt dat in de broncode van de mail het return-path op “www@kluivers.local” staat. (Kluivers = mijn mac) ??

Sendmail is default “/usr/sbin/sendmail -t -i” maar haalt ergens die www@kluivers.local vandaan. Niet goed dus, waar kan ik dat aanpassen.

Ik vermoed nml dat dit het probleem is.

Tevens kan ik niet echt vinden waar die “-t en -i” voor staan.

iemand ?

ik gebruik zelf eigenlijk altijd het mime_message script van Manuel Lemos [url=http://www.phpclasses.org/browse/package/9.html]Mime Message[/url]

daarin kwam ik ook dit stukje code tegen, en dan zie je dat het zetten van een return path ook niet altijd kan (op de servers waar mijn code terecht komt staat bv safe_mode aan).

[code:1:91316a93c9]
if(strlen($return_path))
{
if(!defined("PHP_OS"))
return($this->OutputError("it is not possible to set the Return-Path header with your PHP version"));
if(!strcmp(substr(PHP_OS,0,3),"WIN"))
return($this->OutputError("it is not possible to set the Return-Path header directly from a PHP script on Windows"));
if($this->GetPHPVersion()<4000005)
return($this->OutputError("it is not possible to set the Return-Path header in PHP version older than 4.0.5"));
if(function_exists("ini_get")
&& ini_get("safe_mode"))
return($this->OutputError("it is not possible to set the Return-Path header due to PHP safe mode restrictions"));
$success=@mail($to,$subject,$body,$headers,"-f".$return_path);
}
[/code:1:91316a93c9]

misschien heb je er wat aan, of op zijn minst een verklaring… :slight_smile:

Ik gebruik altijd de class phpmailer daarbij kun je veel instellen zeker als je de smtp class erbij gebruikt [url=http://phpmailer.sourceforge.net/]phpmailer[/url]

ok. Ben eindelijk door de "spambarriere" heen. Maar oh oh, wat een ge-emmer. Probleem is dat als je via je eigen mac werkt hij zelf het return-path samensteld. Resultaat: www@user.local. Als je in de php.ini hetvolgende bij "sendmail_path" zet

[code:1:23a7c0c430]/usr/sbin/sendmail -t -i -f ‘naam<janwillem@mail.nl>’[/code:1:23a7c0c430]

dan werkt het wel. Hij geeft dan de “juiste” return-path maarrr, helaas de verkeerde afzender. Dus, dat moet ik nog effe oplossen.

@mac748 & apenstaartje:: tnx voor de hulp. Ik had de eerste al doorgenomen, ik zal nu de tweede even doorakkeren.

moet me toch even van het hart dat dat sentmail wel een warrig progje met een zwaar warrige handleidng is. Maargoed…

[quote:0f54e53e20] wat betreft die dns trace kun je de optie -f naam@adres.nl <mailto:naam@adres.nl> opnemen in je sendmail (from) dan stuur je hard je adres mee en kan het niet meer fout gaan. [/quote:0f54e53e20] ik zag dat je zelf ook al in de richting van -f dacht, maar daar moet je het wel zoeken. Bovenstaande gegevens (in de quote) kreeg ik van mijn provider in verband met dns trace spambeveiliging van sommige providers als mail niet de juiste afzender heeft. Ik ben er zelf nog niet helemaal achter wat nu het preciese formaat is, wat je dus achter -f moet zetten, en of het tussen enkele aanhalingstekens moet. Ben niet zo'n Perl kenner.

Als je de juiste syntax en manier heb ontdekt, meld het effe.

[quote="Harryk"][quote:2e7f3efb57] Als je de juiste syntax en manier heb ontdekt, meld het effe.[/quote:2e7f3efb57]

de syntax is zoals aangegeven.

[code:1:2e7f3efb57]
/usr/sbin/sendmail -t -i -f naam@server.nl
of
/usr/sbin/sendmail -t -i -f ‘AKA<naam@server.nl>’[/code:1:2e7f3efb57]

waarbij ik helaas het voorvoegsel “AKA” nog niet aan de praat heb. Maar so be it. Dat pas ik later even aan als ik de app live zet. Gebruikt hij automatisch weer andere data dus…

edit:: Naam werkt nu ook. Dit is de syntax

[code:1:2e7f3efb57]/usr/sbin/sendmail -t -i -f ‘AKA<naam@server.nl>’[/code:1:2e7f3efb57] en dan combineer ik dat in met de header

[code:1:2e7f3efb57]
$headers .= ‘From: AKA <naam@server.nl>’ . “rn”;
$headers .= ‘Reply-To:AKA < naam@server.nl>’ . “rn”;
[/code:1:2e7f3efb57]

[quote:3a629c895c="mac748"]Ik gebruik altijd de class phpmailer daarbij kun je veel instellen zeker als je de smtp class erbij gebruikt [url=http://phpmailer.sourceforge.net/]phpmailer[/url][/quote:3a629c895c]

ziet netjes uit. Ik moet even kijken of ik deze class kan gebruiken bij mijn provider. Voor nu werkt het in ieder geval 80%