Door
Obelix Idefix
op 08-02-2018 13:09
gewijzigd op 08-02-2018 13:13
9.162 views
Ik verstuur m.b.v. phpmailer naar een aantal mensen een mail.
Hiervoor gebruik ik onderstaande code:
<?php
$tekst_mailing = 'hier wordt de tekst opgesteld van de mailing';
// Phpmailer
require_once('class.phpmailer.php');
$mail = new PHPMailer();
$body = 'Hallo '.$data['aanhef'].',<br><br>' . $tekst_mailing;
$body .= '<br>Mocht je dit soort berichten niet meer willen ontvangen, dan kun je je afmelden via de <a href="https://www.domeinnaam.nl/afmelden.php">link</a>.';
$mail->SetFrom('[email protected]', '[email protected]');
$mail->AddAddress($data['emailadres'], $data['emailadres']);
$mail->Subject = 'onderwerp';
$mail->AltBody = "Om deze tekst te kunnen lezen, moet uw mailprogramma HTML ondersteunen.";
$mail->MsgHTML($body);
if(!$mail->Send())
{
$melding = '<br>Er is een fout opgetreden bij het verzenden van de emailadres.<br><br>';
}
else
{
$melding = '<br>Uw bericht is succesvol verzonden. <br>Mocht het nodig zijn, ontvangt u zo spoedig mogelijk een reactie.<br><br>';
}
$mail->ClearAddresses();
?>
Bij de e-mails die ik zelf binnen krijg, werken de links prima op zowel pc, laptop, tablet als smartphone.
Ook bij een aantal anderen werkt het prima. Echter heb ik ook van mensen gehoord dat het niet werkt op de (Samsung) smartphone, I-pad. Ze zien de link naar de site wel, maar kunnen er niet op klikken.
Van iemand kreeg ik een bericht terug en daar stonden zelfs de linkjes niet (meer) in, alleen de tekst.
Ik zou denken dat het komt omdat HTML niet (goed) wordt ondersteund, maar dan zou toch de regel moeten worden getoond van AltBody?
Iemand een idee hoe dit kan en, belangrijker, hoe ik dit kan oplossen?
Klinkt mij een beetje als een email client die zijn gebruikers wil beschermen tegen malafide praktijken. Dingen die daar in kunnen helpen is onder andere zorgen dat je Spammyness score zo laag mogelijk wordt, je HTML klopt en wellicht ook dat je je website voorziet van een SSL certificaat en je linkjes in de mail voorziet van een https:// prefix. Er zijn meerdere websites waar je je mailtjes kunt testen. Dit is er één.
Degene die wel links ziet, maar niet kan openen is overigens een Hotmail adres. Degene die niks ziet, is een bedrijfsnaam.
Wel werkt is Gmail. Daar zie ik dan een mogelijke oorzaak/verschil.
Het verbaast mij dat Gmail geen probleem vormt... aangezien Gmail de meest vervelende mailprovider is qua regels opstellen rondom e-mail. Als Gmail zegt dat het geen probleem is... dan weet ik vrijwel zeker, dat de rest ook geen probleem vormt, staat de afzender toevallig op de whitelist? al een ander gmailadres geprobeerd?
Worden de hotmails gelezen in mail programma of via webmail?
Ik merk dat er wel eens problemen zijn met hotmail in ipad.
Men heeft blijkbaar liever dat je het [email protected]
wijzigt naar [email protected] in je emailprogramma.
Ik heb een nieuw / apart e-mailadres hiervoor gebruikt. Die kon bij niemand bekend zijn / op een whitelist staan. Bij 2 gmailadressen geeft het geen enkel probleem.
Elmar vH op 08/02/2018 13:55:16
Maar in alle gevallen:
Post de headers eens van je e-mail.
Waar haal ik die vandaan?
@Hans: ik sluit niets op voorhand uit, maar dat hotmail/outlook lijkt me niet de (hoofd)oorzaak. Zoals aangegeven; iemand anders heeft ook problemen en dat is geen hotmail adres.
Als ik de mail zelf open en ik vraag de bron op, zie ik dat er geen html in staat (geen head en body tag bijvoorbeeld). Ik ging er eigenlijk van uit dat dat geregeld werd via phpmailer. Daar geef ik dat immers aan
$mail->MsgHTML($body);
. Maak ik daar een (denk)fout?
Heb net de link getest van Frank. Daar kreeg ik een score van 8/10.
Een score van -1 bij 'niet volledig geverifieerd':
Je bericht is niet ondertekend met DKIM
DomainKeys Identified Mail (DKIM) is een methode voor het associëren van een domeinnaam met een e-mail bericht, waardoor een persoon, functie of organisatie enige vorm van verantwoordelijkheid voor de boodschap kan claimen.
Maar dat zegt me niet zo veel.
Daarna, maar er staat nog wel een vinkje bij / kost me geen punt:
Je heb geen DMARC record
met een hele engelstalige uitleg. Zegt me, op dit moment, ook nog niets.
En twee gebroken links. 1 Had ik zelf al ontdekt, maar die tweede zie ik nu ook. De link begint met www . In de browser is dat doorgaans geen probleem, maar mogelijk dat in een e-mail dat wel een probleem is/geeft.
Waar haal ik die vandaan?
--> Open de e-mail in bijvoorbeeld GMAIL (Desktop modus)
--> Rechtsbovenin ( onder het print icoontje ), staat een pijltje.. klik er op.
--> Daarna klik je op "Origineel weergeven"
In outlook.com:
--> Open de betreffende email ( desktop modus)
--> Druk op het pijltje ( rechts van de Beantwoorden knop , die rechts gecentreerd staat )
--> Klik op Bron van Bericht weergeven.
DKIM moet je hoster ondersteunen.. draai je toevallig directadmin?
DMARC = een DNS instelling ( net zoals DKIM )
Daar uit opmakend zou dit ook kunnen, maar iig moet je HTML wel valid zijn:
<?php
$tekst_mailing = 'hier wordt de tekst opgesteld van de mailing';
// Phpmailer
require_once('class.phpmailer.php');
$mail = new PHPMailer();
$mail->Body = '<html><head></head><body>';
$mail->Body .= 'Hallo '.$data['aanhef'].',<br><br>' . $tekst_mailing;
$mail->Body .= '<br>Mocht je dit soort berichten niet meer willen ontvangen, dan kun je je afmelden via de <a href="https://www.domeinnaam.nl/afmelden.php">link</a>.';
$mail->Body .= '</body></html>';
$mail->SetFrom('[email protected]', '[email protected]');
$mail->AddAddress($data['emailadres'], $data['emailadres']);
$mail->Subject = 'onderwerp';
$mail->AltBody = "Om deze tekst te kunnen lezen, moet uw mailprogramma HTML ondersteunen.";
$mail->isHTML();
if(!$mail->Send())
{
$melding = '<br>Er is een fout opgetreden bij het verzenden van de emailadres.<br><br>';
}
else
{
$melding = '<br>Uw bericht is succesvol verzonden. <br>Mocht het nodig zijn, ontvangt u zo spoedig mogelijk een reactie.<br><br>';
}
$mail->ClearAddresses();
?>
Elmar vH op 09/02/2018 16:48:43
DKIM moet je hoster ondersteunen.. draai je toevallig directadmin?
DMARC = een DNS instelling ( net zoals DKIM )
Dat eerste is niet helemaal waar, je hebt alleen toegang nodig tot de DNS, als je weet hoe het moet kan je de DKIM zelf toevoegen, PHPMailer heeft hier zelfs functionaliteiten voor.
Misschien dat het iets specifieks is van DirectAdmin, maar op deze platformen moet er meer dan een DNS-verwijzing worden gedaan om DKIM werkend te krijgen: