Goedemorgen,

Heb een simpel PHP mailscript aangepast IVM het "from" field wat vaak moet verwijzen naar een [email protected], IPV het emailadres wat is ingevuld door de verzender, IVM spammisbruik. Mijn script werkt bij de ene webhost maar niet bij de andere.

Dit stukje code werkt bijna goed, maar als ik dan reply in GMAIL staat mijn eigen adres in het reply field:

$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .

Dat heb ik daarom vervangen voor dit en dat werkt bij de ene maar niet bij de andere webhost, daar klopt de output niet:

$headers = "From: [email protected]";
$headers .= "Reply-To: $email_from";


Hier gaat het fout, uit de header:


From: "[email protected]:test"@test.nl

Dus daar wordt from en reply niet gescheiden, denk dat het iets heeft te maken met de opmaak, de quotes, en die puntjes maar ik weet het niet. Probleem is dat ik bij de host waar het niet werkt niet veel kan testen, de server blokkeert mijn mail als er iets niet klopt bij het from field.

Iemand een tip?

BVD!

Gr. Arno
Ja dat snap ik maar ik kom hier voor hulp niet voor een les, en ben niet te lui om het uit te zoeken maar heb gewoon een simpele vraag want hierna ga ik vast wel phpmailer gebruiken maar zit hier nu even mee.

waar in de volgende regels ik /r/n/ whatever moet toevoegen:

$headers = "From: [email protected]";
$headers .= "Reply-To: $email_from";

de output is nu verkeerd: From: "[email protected]:test"@test.nl

test"@test.nl = wat is ingevuld in het formulier maar dan als [email protected] zonder die dubbele quotes

BVD,

Gr. Arno
Als je nou even rustig op de gegeven link kijkt zie je hoe het moet. :-)
Ok fijn bedankt ik zal het uitzoeken. Probleem is dat ik bij deze webhost niks meer kan testen zonder fouten te maken want dan wordt de mail vanaf de website direct geblokkeerd. Kan ook niet in korte tijd van webhost veranderen, vandaar dat ik mij afvroeg of iemand voor mij die twee lijntjes code kan aanpassen:

waar in de volgende regels ik /r/n/ whatever moet toevoegen:

$headers = "From: [email protected]";
$headers .= "Reply-To: $email_from";

de output is nu verkeerd: From: "[email protected]:test"@test.nl

test"@test.nl = wat is ingevuld in het formulier maar dan als [email protected] zonder die dubbele quotes
Nou, vooruit.....

<?php
$headers = "From: [email protected]". "\r\n";
$headers .= "Reply-To: $email_from". "\r\n";
?>

Dit komt dus uit het script waarnaar ik linkte. Als je die nogmaals bekijkt, dan zou je een stabiel script moeten hebben die in 99% van de gevallen moet werken.
Frank Nietbelangrijk op 24/09/2018 11:27:34
dit kun je ook oplossen met PHP_EOL.

Maar dat is platform-afhankelijk, en heeft betrekking op PHP, en niet op het proces dat e-mail verzorgt. En deze kunnen dus ook van elkaar verschillen, het lijkt mij dan ook onverstandig om die op deze manier aan elkaar te koppelen...

If anything, maak hier een aparte constante van, zodat deze apart (en op één plaats) aangepast kan worden.
Als je het nog mooier wilt doen, dan kan het ook op deze onderstaande manier.
Maar dan heb je wel PHP 7.2 nodig.


<?php
$to      = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = array(
    'From' => '[email protected]',
    'Reply-To' => '[email protected]',
    'X-Mailer' => 'PHP/' . phpversion()
);

mail($to, $subject, $message, $headers);
?>

Het voordeel is dat PHP zelf bepaalt wat de juiste manier is om deze CRLF te gebruiken.
Ontzettend bedankt nu werkt het IIG!!!

Maar er is wel iets aan de hand, ik zie bij de ene webhost in het Naam/van veld in Gmail het emailadres wat is ingevuld in het formulier, maar via andere webhost zie ik in gmail het gedeelte vóór de apestaart, dus in dit geval info, in het van/from veld? Hoe krijg ik daar de naam of het email uit het formulier?

Dit heb ik geprobeerd maar werkte niet:

//$headers .= 'Reply-To: ' . $naam . ' <' . $email_from . '>' . "\r\n";

dit is wat ik nu heb:

$email_to = "[email protected]";
$email_subject = "Emailformulier via actamasa.be";

$headers = "From: [email protected]". "\r\n";
$headers .= "Reply-To: $email_from". "\r\n";
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);

IIG heel erg bedankt voor de hulp!
Ik raad aan om in zowel From als Reply-to de vissenhaakjes ( < en > ) te gebruiken, waarmee je onderscheid maakt in je naam en mailadres.
Bedankt, tussen de quotes? Hoe precies?

Reageren