Waarom werkt de reply-to niet zoals ik verwacht
Ik beheer de website van de biljartclub.
Ik heb een stukje code geschreven waarmee de beheerder uitnodigingen kan versturen naar diverse leden.
Men kan zich aanmelden door de ontvangen email te beantwoorden.
In de headers heb ik het emailadres van de beheerder opgenomen, dit is geen keihard gegeven omdat we verschillende beheerders hebben. En deze beheerders hebben uiteraard hun eigen emailadres.
Het probleem is als volgt:
Ik vul de headers en de email wordt netjes verzonden.
In de bron van de email zie ik het Reply-To adres, so far so good.
Als je op beantwoorden klikt dan verschijnt deze Reply-To in de Aan-balk, als de Reply-To eindigt op @domeinnaam.
Eindigt het op wat anders, zoals @watjammer dan verschijnt het niet in de Aan-balk.
Is er een andere mogelijkheid om het emailadres van de beheerder in de Aan-balk te krijgen?
Natuurlijk zou ik elke beheerder een @domeinnaam kunnen geven, maar dat is niet mijn oplossing.
Ik heb een stukje code geschreven waarmee de beheerder uitnodigingen kan versturen naar diverse leden.
Men kan zich aanmelden door de ontvangen email te beantwoorden.
In de headers heb ik het emailadres van de beheerder opgenomen, dit is geen keihard gegeven omdat we verschillende beheerders hebben. En deze beheerders hebben uiteraard hun eigen emailadres.
Het probleem is als volgt:
Ik vul de headers en de email wordt netjes verzonden.
In de bron van de email zie ik het Reply-To adres, so far so good.
Als je op beantwoorden klikt dan verschijnt deze Reply-To in de Aan-balk, als de Reply-To eindigt op @domeinnaam.
Eindigt het op wat anders, zoals @watjammer dan verschijnt het niet in de Aan-balk.
Is er een andere mogelijkheid om het emailadres van de beheerder in de Aan-balk te krijgen?
Natuurlijk zou ik elke beheerder een @domeinnaam kunnen geven, maar dat is niet mijn oplossing.
Gewijzigd op 31/05/2024 08:24:52 door - Ariën -
Twee dingen om rekening mee te houden:
1) de mailto: -link moet wel URL-encoded zijn,
2) er zit een praktisch maximum aan de lengte van een link, waardoor je niet de hele body met HTML kunt vullen.
Verschillende browsers hanteren een verschillend maximum. Een duimregel is om een link niet langer te maken dan 2000 karakters.
1) de mailto: -link moet wel URL-encoded zijn,
2) er zit een praktisch maximum aan de lengte van een link, waardoor je niet de hele body met HTML kunt vullen.
Verschillende browsers hanteren een verschillend maximum. Een duimregel is om een link niet langer te maken dan 2000 karakters.
@Ad Fundum
Het gaat niet om HTML.
Misschien had ik mijn vraag niet duidelijk uitgelegd, vandaar een langere beschrijving.
In mijn PHP vul ik de headers (dus ook de Reply-To is aanwezig) en de email naar de geselecteerde leden wordt netjes verstuurd.
Als ik in de header "Reply-To: [email protected]" zet en de mail verstuur en daarna in de mail op beantwoord klik dan is de Aan gevuld met [email protected]
Als ik in de header "Reply-To: [email protected]" zet en de mail verstuur en daarna in de mail op beantwoord klik dan is de Aan niet gevuld.
In beide gevallen zie ik in de bron van de email dat de Reply-To netjes met de email meekomt.
Hoe kan het dan dat deze in de 2e situatie niet in Aan terecht komt?
Het gaat niet om HTML.
Misschien had ik mijn vraag niet duidelijk uitgelegd, vandaar een langere beschrijving.
In mijn PHP vul ik de headers (dus ook de Reply-To is aanwezig) en de email naar de geselecteerde leden wordt netjes verstuurd.
Als ik in de header "Reply-To: [email protected]" zet en de mail verstuur en daarna in de mail op beantwoord klik dan is de Aan gevuld met [email protected]
Als ik in de header "Reply-To: [email protected]" zet en de mail verstuur en daarna in de mail op beantwoord klik dan is de Aan niet gevuld.
In beide gevallen zie ik in de bron van de email dat de Reply-To netjes met de email meekomt.
Hoe kan het dan dat deze in de 2e situatie niet in Aan terecht komt?
Technisch kan het gewoon (het zijn niet voor niets twee verschillende headers) maar individuele e-mailproviders blokkeren deze mogelijkheid soms. Dat maakt de oplossing dus onvoorspelbaar en onbetrouwbaar.
Zie bijvoorbeeld:
https://stackoverflow.com/questions/29112817/will-setting-a-reply-to-address-at-a-different-domain-result-in-spam
De beste oplossing is toch iemand die communiceert namens een domein gewoon een e-mailadres op dat domein geven.
(Als je het al werkend krijgt voor je eigen e-mail, weet je nooit zeker hoe andere providers of clients reageren, dus ik zou het idee gewoon vergeten.)
Zie bijvoorbeeld:
https://stackoverflow.com/questions/29112817/will-setting-a-reply-to-address-at-a-different-domain-result-in-spam
De beste oplossing is toch iemand die communiceert namens een domein gewoon een e-mailadres op dat domein geven.
(Als je het al werkend krijgt voor je eigen e-mail, weet je nooit zeker hoe andere providers of clients reageren, dus ik zou het idee gewoon vergeten.)
Bedankt voor je reactie Ward.
Ik zal contact opnemen met de webhost, misschien kunnen zij wat voor mij doen.
Hoe kan ik deze topic sluiten?
Ik zal contact opnemen met de webhost, misschien kunnen zij wat voor mij doen.
Hoe kan ik deze topic sluiten?
Gewijzigd op 02/06/2024 23:42:42 door Wladimir S
Niet nodig, die zinkt wel naar beneden.
Laat je code eens zien hoe je de e-mail verstuurt.
Ozzie, ik heb net al een bericht naar de webhost gestuurd, want Ward's uitleg zou best eens kunnen kloppen.
Maar omdat je het gevraagd hebt, hier een klein stukje van de code
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: [email protected]";
$headers[] = "Reply-To: [email protected] "; // dit email-adres komt in de Aan te voorschijn
// $headers[] = "Reply-To: [email protected] "; // dit email-adres komt niet in de Aan te voorschijn
$headers[] = "X-Mailer: PHP/".phpversion();
$headers=implode("\r\n", $headers);
en verderop
if(mail($email, $onderwerp, $message, $headers) ==false)
{ echo "Fout tijdens versturen mail aan $splnam<p>";
}
De mail wordt dus goed verstuurd
Maar omdat je het gevraagd hebt, hier een klein stukje van de code
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: [email protected]";
$headers[] = "Reply-To: [email protected] "; // dit email-adres komt in de Aan te voorschijn
// $headers[] = "Reply-To: [email protected] "; // dit email-adres komt niet in de Aan te voorschijn
$headers[] = "X-Mailer: PHP/".phpversion();
$headers=implode("\r\n", $headers);
en verderop
if(mail($email, $onderwerp, $message, $headers) ==false)
{ echo "Fout tijdens versturen mail aan $splnam<p>";
}
De mail wordt dus goed verstuurd
Probeer dit eens
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$reply_to = '[email protected]';
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: [email protected]";
$headers[] = "Reply-To: " . $reply_to;
$headers[] = "X-Mailer: PHP/".phpversion();
$headers=implode("\r\n", $headers);
$mail_sent = mail($email, $onderwerp, $message, $headers, '-f ' . $reply_to);
if (!$mail_sent) {
echo 'Mail niet verstuurd.';
}
?>
$reply_to = '[email protected]';
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: [email protected]";
$headers[] = "Reply-To: " . $reply_to;
$headers[] = "X-Mailer: PHP/".phpversion();
$headers=implode("\r\n", $headers);
$mail_sent = mail($email, $onderwerp, $message, $headers, '-f ' . $reply_to);
if (!$mail_sent) {
echo 'Mail niet verstuurd.';
}
?>
Als je het helemaal safe wilt spelen, gebruik dan gewoon SMTP en stuur de mail weg via PHPmailer of Swiftmailer.
De mail-functie van PHP is gewoon echt haast niet te debuggen.
De mail-functie van PHP is gewoon echt haast niet te debuggen.
@Ward, Heb net antwoord gekregen van de webhost, dit is niet iets wat zij tegenhouden.
@Ozzie, het resultaat is hetzelfde, de Aan wordt dus niet gevuld als reply_to niet van het domein is.
@Ariën, ik was een paar dagen geleden al aan het stoeien met PHPmailer. Maar tijdens onze vakantie heb ik niet overal goede wifi, dus ik kan niet overal mijn laptop te voorschijn halen. Soms gebruik ik de hotspot van mijn iphone ook hoor.
Bedankt voor jullie hulp zover, morgen ga ik weer verder, welterusten
@Ozzie, het resultaat is hetzelfde, de Aan wordt dus niet gevuld als reply_to niet van het domein is.
@Ariën, ik was een paar dagen geleden al aan het stoeien met PHPmailer. Maar tijdens onze vakantie heb ik niet overal goede wifi, dus ik kan niet overal mijn laptop te voorschijn halen. Soms gebruik ik de hotspot van mijn iphone ook hoor.
Bedankt voor jullie hulp zover, morgen ga ik weer verder, welterusten
En zo?
BIjna hetzelfde, alleen geen spatie achter -f.
BIjna hetzelfde, alleen geen spatie achter -f.
Op karl-voit.at/2021/07/21/reply-to vond ik een mooie oplossing voor dit probleem.
Hierin geeft hij aan hoe de reply-to werkt en dat kwaad-willenden daar soms ook misbruik van maken.
Een goede en simpele oplossing is om dat reply-adres bij de FROM op te nemen en dat werkt goed.
Nogmaals bedankt voor jullie meedenken.
Hierin geeft hij aan hoe de reply-to werkt en dat kwaad-willenden daar soms ook misbruik van maken.
Een goede en simpele oplossing is om dat reply-adres bij de FROM op te nemen en dat werkt goed.
Nogmaals bedankt voor jullie meedenken.
Eenvoudige en effectieve oplossing




