Beste allemaal,

Ik heb een probleem met het zenden van email via een php server.
Ik heb de volgende code bij 2 verschillende (gratis) php servers geprobeerd, maar ik ontvang niet de email.
Iemand een idee waar het aan kan liggen?



<?php
	mail("[email protected]","It worked when you can read this","Some message text");
	echo("<h1>I hope you recieve mail</h1>");
	?>



<h1>I hope you recieve mail</h1> wordt wel terug gegeven.

Ligt dit aan de host (omdat het gratis is?)

Of ligt het aan mijn provider (zeelandnet)

Ik heb deze vragen ook op fora van de desbetreffende hostings gezet, maar (nog) geen reactie ontvangen

Het gaat om 000webhost en epizy.


Alle sugesties zijn welkom.

Groetjes Jacco.
Staat error_reporting en display_errors aan? Een if-else statement raad ik altijd aan om zeker te weten of de functie de mail aan de mailserver heeft afgeleverd. Maar dat geeft geen garantie dat de mail aankomt.

Het is lastig te herleiden waar het misgaat.
Ikzelf raad altijd PHPmailer aan. Die kan je zelf flexibel instellen op SMTP-servers of die van gMail. Met de debug-modus aan kan je dan in ieder geval zien of de mailserver het geaccepteerd heeft, en zo niet, wat er aan de hand is.
Meestal ligt het aan de gratis host. Die willen voorkomen dat ze voor SPAM worden ge(mis)bruikt, dus dan helaas-pindakaas: geen mail().
hmmzz stats zien er vreemd uit. Volgens die stats heb ik 104% van mijn email sending verbruikt, wat me sterk lijkt want ik heb nooit meer dan 10x geprobeerd de mail te zenden.
Ik zal eens in de gaten gaan houden of het morgen weer op 0 staat, en van daaruit kijk ik verder.
Houd jullie op de hoogte.
Bedankt voor het meedenken allemaal.

[size=xsmall]Toevoeging op 15/07/2018 20:16:50:[/size]

Beste,

Vandaag weer gekeken, en volgens de stats kan ik weer e-mails zenden.
Ook na alle steps te hebben doorlopen in de link van Arïen ontvang ik nog steeds geen e-mail.

https://www.000webhost.com/forum/t/problem-sending-e-mail/130147/5

Bovenstaand de link naar het forum van 000webhost waar ik de vraag ook heb neergelegd.

Als iemand nog een idee heeft hoor ik het graag. :)
Ligt het wellicht aan dat je geen 'header' meestuurt? Ik zie een to: maar geen from:


<html>
   
   <head>
      <title>Sending HTML email using PHP</title>
   </head>
   
   <body>
      
      <?php
         $to = "[email protected]";
         $subject = "This is subject";
         
         $message = "<b>This is HTML message.</b>";
         $message .= "<h1>This is headline.</h1>";
         
         $header = "From:[email protected] \r\n";
         $header .= "Cc:[email protected] \r\n";
         $header .= "MIME-Version: 1.0\r\n";
         $header .= "Content-type: text/html\r\n";
         
         $retval = mail ($to,$subject,$message,$header);
         
         if( $retval == true ) {
            echo "Message sent successfully...";
         }else {
            echo "Message could not be sent...";
         }
      ?>
      
   </body>
</html>
Dank voor jullie reacties,

Ik heb 2 aanvullingen voor nu:

Onderstaande mail heb ik gekregen van mijn provider (zeelandnet):

Geachte heer Walraven,

U heeft een vraag gesteld over e-mailaflevering via een webformulier hiervoor zijn meer details nodig. Zeelandnet heeft afgelopen halfjaar verschillende technische maatregelen getroffen om spam en phishing e-mails het hoofd te bieden.
Wij verplichten nu authenticatie voor verzending via Zeelandnet mailserver van buiten het Zeelandnet netwerk. Ook hebben wij SPF ingesteld waardoor er strengere regels zijn voor afzenders. Voldoet een e-mail niet naar aanleiding van SPF controle dan kan deze niet worden afgeleverd.

Om uw probleem nader te onderzoeken verneem ik graag de technische details van het probleem. Het liefst de foutmelding die u retour heeft gehad heeft u geen foutmelding dan verneem ik graag het verzendende e-mailadres aanvullend met waar vandaan de e-mail wordt verzonden(mailserver naam en IP-adres.

Met vriendelijke groet,


Security Specialist
DELTA Abuse
Network Security Operations Center



Dus hier vanuit gaande kunnen we denk ik wel zeggen dat Zeelandnet die mails tegenhoud iv.m. fishing/spam en dat soort dingen. Alleen snap ik weinig van de termen die erin staan......

Wij verplichten nu authenticatie voor verzending via Zeelandnet mailserver van buiten het Zeelandnet netwerk

Je mailt toch via de mailserver van 000webhost? Dan heeft het probleem hoogstwaarschijnlijk niks met Zeelandnet te maken. Ik zou zeggen: Stuur eens wat mailtjes via 000webhost naar kenissen met andere providers, en vraag hun eens of ze wat binnenkrijgen.

Persoonlijk raad ik aan om phpMailer te gebruiken, en zorg dat de SPF op dat domein in orde is. Bij subdomeinen vrees ik dat dit lastig zal worden.
Dat is deel 1
Deel 2:

Ik heb nu de volgende code samengesteld aan de hand van de antwoorden van Jan en Arïen (dank voor jullie antwoorden trouwens)


<?php
// Geef GELDIGE adressen op
// Een korte benaming voor jouw website
$website_naam = 'Mijn Site';
// Jouw eigen geldige emailadres
$eigen_emailadres = 'e-mail waar ik de mail wil ontvangen'; (van zeelandnet)
// Een geldig emailadres voor errors
$error_emailadres = 'zelfde als $eigen_emailadres';
// De naam van de verzender
$naam_verzender = 'Jacco';
// Het geldige emailadres van de afzender
$email_verzender = 'een ander emailadres dat ik heb van zeelandnet';
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '';
// HTML mail? True/False
$html = true;
//onderwerp
$subject = "This is subject";
//inhoud van de message        
$message = "<b>This is HTML message.</b>";
$message .= "<h1>This is headline.</h1>";

// 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" : '';

         
         $retval = mail ($eigen_emailadres,$subject,$message,$headers);
         
         if( $retval == true ) {
            echo "Message sent successfully...";
         }else {
            echo "Message could not be sent...";
         }
      ?>



Dit geeft wel terug: "Message sent successfully..." maar ik ontvang geen mail op $eigen_emailadres?



Jacco Walraven op 16/07/2018 12:02:05


Dit geeft wel terug: "Message sent successfully..." maar ik ontvang geen mail op $eigen_emailadres?

Klopt, dat zei ik ook:
- Ariën - op 14/07/2018 20:57:30

Een if-else statement raad ik altijd aan om zeker te weten of de functie de mail aan de mailserver heeft afgeleverd. Maar dat geeft geen garantie dat de mail aankomt.

Het enige dat je weet dat dat de mail is verzonden naar de mailserver van 000webhost. Maar verder ligt de bal bij hun. Test het dus eens uit met andere providers, zoals ik zei.

Maar ik geef weinig kans dat je dit anders via SMTP op een subdomein voor elkaar krijgt.

Waarom heb je geen normale domeinnaam met DNS-mogelijkheden? Dan stel je daar SPF goed op in (daar kan je webhosting e.v.t. ook goed bij helpen).

Reageren