email script
Ik ben bezig met en emailscript. Deze moet naar een klant worden gestuurd zodra het account is geactiveerd. Nu duurt het heel lang voordat het binnen komt op mijn emailserver. Ik host bij domain.com. Zou het aan de host liggen of aan mijn script.
$to = $email;
$subject = 'Herbalife coach';
$message = 'Beste '.$naam.'
Hieronder de inloggegevens.
Gebruikersnaam: '.$user_name.'
Wachtwoord: '.$resultPass;
$header = "From:[email protected] \r\n";
$retval = mail ($to,$subject,$message,$header);
De juiste email headers (http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders)
Gewijzigd op 07/02/2015 19:25:46 door Jan de Laet
ik heb de headers gezet zoals in dat artikel, maar nog duurt het heel lang voordat de mail binnen komt. Zou het dan aan mijn hostbedrijf kunnen liggen of toch nog aan mijn script.
Wat is "heel lang"?
Geef eens wat relevante code.
Dan zie je ook de tijden waarop de verschillende mail servers de mail ontvingen
Nb.
Sommige servers houden mails met staus 'mogelijk spam' bewust wat langer vast
// Geef GELDIGE adressen op
// Een korte benaming voor jouw website
$website_naam = '...';
// Jouw eigen geldige emailadres
$eigen_emailadres = '...';
// Een geldig emailadres voor errors
$error_emailadres = '...';
// De naam van de verzender
$naam_verzender = '...';
// Het geldige emailadres van de afzender
$email_verzender = $email;
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '';
// HTML mail? True/False
$html = true;
// De headers samenstellen
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
$subject = 'Herbalife coach';
$message = 'Beste '.$naam.'
Hieronder de inloggegevens.
Gebruikersnaam: '.$user_name.'
Wachtwoord: '.$resultPass';
$retval = mail ($to,$subject,$message,$header);
Net zoals met de gewone papieren post biedt het op de post doen van een brief geen enkele garanties ten aanzien van:
- het daadwerkelijk aankomen van de post
- de snelheid waarmee het bericht wordt afgeleverd
Het enige wat je aan jouw zijde kunt doen is controleren of de post daadwerkelijk wordt verstuurd ($retval === true). En bij aankomst kijken in de bron van het bericht voor enige benchmarking en controles.
Verder helpt het als het bericht volgens de regels der kunst wordt opgesteld. Zo geef je in je $headers aan dat het Content-Type van je mailbody text/html is ($html is immer true) maar je mailbody zelf ($message) bevat enkel plaintext. Je zou kunnen overwegen om hier echt een html-documentje van te maken met een content-type meta-tag die overeenkomt met die in je mail-header.
Antispamprogramma's die je mail inspecteren doen dit volgens mij meestal op een aantal kenmerken waar een score aanhangt. Als de som van de scores van deze kenmerken een bepaalde grens overschrijdt dan wordt het bericht gemarkeerd als spam. Mogelijk staat in de broncode van de e-mail aan de ontvangstzijde hier een rapportje over, deze zou je kunnen hanteren als "checklist" waarbij je de spam-punten van hoog naar laag probeert weg te werken.
En misschien is je host gewoon traag met het versturen van mail. Je zou altijd bij je host kunnen informeren naar de mogelijkheden / tips.
EDIT: spelling
Gewijzigd op 08/02/2015 16:12:02 door Thomas van den Heuvel