email zenden lukt niet
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?
Code (php)
1
2
3
4
2
3
4
<?php
mail("[email protected]","It worked when you can read this","Some message text");
echo("<h1>I hope you recieve mail</h1>");
?>
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.
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.
Gewijzigd op 14/07/2018 20:58:36 door - Ariën -
Meestal ligt het aan de gratis host. Die willen voorkomen dat ze voor SPAM worden ge(mis)bruikt, dus dan helaas-pindakaas: geen mail().
https://www.000webhost.com/forum/t/if-you-are-having-mail-problems-read-this/71658
Kan dus wel, maar kijk eerst eens in het controle paneel.
Kan dus wel, maar kijk eerst eens in het controle paneel.
Gewijzigd op 14/07/2018 21:05:50 door - Ariën -
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.
Toevoeging op 15/07/2018 20:16:50:
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. :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<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>
<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>
http://wiki.phpbeginners.nl/index.php?title=De_juiste_mailheaders kan je het best gebruiken.
Gewijzigd op 16/07/2018 10:21:29 door - Ariën -
Ik heb 2 aanvullingen voor nu:
Onderstaande mail heb ik gekregen van mijn provider (zeelandnet):
Quote:
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
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......
Gewijzigd op 16/07/2018 11:52:24 door Jacco Walraven
Quote:
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.
Gewijzigd op 16/07/2018 12:03:52 door - Ariën -
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)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?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...";
}
?>
// 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?
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).
Gewijzigd op 16/07/2018 12:07:20 door - Ariën -
Wat je wel kunt doen is zorgen dat het verzonden e-mailbericht zo goed mogelijk aan de richtlijnen voldoet.
Ik kan mij vergissen, maar volgens mij moet (volgens de RFC) het Return-Path in de "simpele vorm" geschreven worden, oftewel enkel het e-mailadres bevatten, en niet Mail-Error <adres>. Ook kan het zijn dat de return path wordt overschreven door een default. Heb je ook eigen e-mailadressen bij deze host, zoja, heb je al gekeken of er mail gebounced wordt naar een adres? Mogelijk biedt -f $error_mailadres als vijfde parameter in de mail() aanroep nog soelaas, maar...
Los hiervan, als je niet precies weet hoe de spelregels voor (MIME-)mail zijn, is het misschien beter om een libray te gebruiken om mailtjes op te stellen, zoals bijvoorbeeld PHPMailer.
Daarnaast staat in het forumartikel waar @Ariën naar linkte redelijk precies beschreven (afgezien van het feit dat de screenshots niet meer werken) aan welke voorwaarden voldaan dient te zijn om mail te kunnen versturen.
Maar laten we wel wezen.
Je zit op een gratis host.
Dat is ongeveer equivalent aan "All Bets Are Off".
Als je betrouwbaar (zakelijke) e-mail wilt versturen, stap dan over naar een betaalde host.
Volgens mij kwam hier in het verleden ook een linkje voorbij om de "spammyness" van mail te testen via https://www.mail-tester.com/. Ook dat zou je eens kunnen bekijken.
Ik heb een idee dat dit niet voor subdomeinen geldt. Je zult dan ook vanaf je subdomein moeten mailen:
[email protected]
Geen idee of het werkt, maar ik heb zoiets nooit goed zien werken. Of heb je al een domeinnaam?
Gewijzigd op 16/07/2018 14:29:57 door - Ariën -
Ik heb op Zeelandnet een website staan, die ruimte krijg je gratis om je website te hoste. Die ondersteund echter geen php,asp en sql enzo. Alleen html,css en js.
Daarom heb ik een gratis host bij 000webhost voor mijn php files. die wil ik dan op mijn website in een iframe gooien o.i.d.
Daarnaast heb ik een domeinnaam geregistreerd staan bij YourHosting. Die linkt de website alleen door, daar heb ik verder geen opslagruimte of mailadres bij.
Daarom deze rare constructie.
Maar ik zal me eens verdiepen in phpmailer.
Maar goed, voor niets gaat de zon op. Een simpel hostingpakket bij een goede Nederlandse webhost heb je al voor maar een paar euro per maand. Dat valt reuze mee!
Gewijzigd op 16/07/2018 17:39:49 door - Ariën -
- Ariën - op 16/07/2018 17:39:13:
Maar goed, voor niets gaat de zon op. Een simpel hostingpakket bij een goede Nederlandse webhost heb je al voor maar een paar euro per maand. Dat valt reuze mee!
Ik ben wel een Zeeuw en wil (al was het maar voor de sport) kijken hoever je kan komen. :)
Op 000webhost kan ik niks vinden over DNS settings. Alleen mail forwarding maar als ik dat in wil stellen verwachten ze dat ik daar eerst mijn domein parkeer, omdat ik dat eng vind klinken en niet goed weet wat voor gevolgen dat heeft begin ik daar niet aan.
Ik krijg nu wel (op aanraden van 000webhost een mail gestuurd naar GMail. Gmail laat ik dan doorsturen naar mijn eigen mail adres.
Het is niet de netste oplossing, maar het eindresultaat is nu wel wat ik wil.
Bedankt voor je reacties en het meedenken.
Groetjes,
Toevoeging op 16/07/2018 18:54:21:
OK ….. van een e-mail doorsturen via Gmail kun je ook weer leren.
Als ik een mail automatisch doorstuur naar Gmail naar mijn Zeelandnet mail krijg ik hem terug met de melding:
Quote:
technische gegevens.
De reactie was:
550 Messages should have one or no To headers, not 2.
Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.0.0
Remote-MTA: dns; mx1.zeelandnet.nl. (217.102.255.205, the server for the
domain zeelandnet.nl.)
Diagnostic-Code: smtp; 550 Messages should have one or no To headers, not 2.
Last-Attempt-Date: Mon, 16 Jul 2018 09:49:38 -0700 (PDT)
De reactie was:
550 Messages should have one or no To headers, not 2.
Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.0.0
Remote-MTA: dns; mx1.zeelandnet.nl. (217.102.255.205, the server for the
domain zeelandnet.nl.)
Diagnostic-Code: smtp; 550 Messages should have one or no To headers, not 2.
Last-Attempt-Date: Mon, 16 Jul 2018 09:49:38 -0700 (PDT)
Zegt iemand dit iets? Ik ga er nu op Googelen.
Met zulke wazige doorstuurconstructies met je website, maak je het wel erg lastig voor zelf.
Je kan proberen om phpMailer in te zetten, maar ik betwijfel of dat goed zal lukken bij 000Webhost i.c.m. SPF. 'But give it a try'
Anders kan je met phpMailer ook direct naar Gmail mailen. Je moet hier even imap-autenticatie aanzetten.
Zie dit phpMailer-script eens: https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps
Gewijzigd op 16/07/2018 19:26:25 door - Ariën -
Ik ben nu op Github mijn eerste 'Hello World' tut aan het volgen. Zoveel verstand heb ik er al van.
En ik gebruik deze rare constructies omdat ik op mijn website ongeveer 1 mailtje per maand verwacht. Daarom wil ik er ook geen geld aan uitgeven. Nu staat er een formuliertje op dat de email client van de gebruiker opent en het dan verstuurd, werkt op zich ook niet slecht. Maar ik wil dan toch even kijk/knutselen om het zonder die client voor elkaar te krijgen, snap je?
Maar toch bedankt voor al je reacties.
Hoe meer kinken je in de kabel brengt bij een mail-transport, hoe groter de kans dat het mailen (later) problemen zal opleveren. Zorg dus voor directe lijntjes met mailservers.
Leuk dat je GitHub wilt leren kennen, maar dat staat los van wat je wilt ;-)
Gewijzigd op 16/07/2018 20:26:33 door - Ariën -
Mwa ... *moet* is een groot woord. E-mail en HTML is toch al een ramp (een heleboel werkt er ook niet, ook als het wel W3C valid is), en de meeste clients pakken het prima op zoals hierboven gebruikt.