Door
Wladimir S
op 30-05-2024 16:56
gewijzigd op 31-05-2024 08:24
2.791 views
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.
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.
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.
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.)
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>";
}
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.
@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