Synology-Forum.nl

Overige software => Web Station => Topic gestart door: Guido-b op 26 november 2014, 10:01:39

Titel: php mail() functie stuurt geen mail
Bericht door: Guido-b op 26 november 2014, 10:01:39
onderstaande code geeft
''Email delivery failed '' dit probleem komt meer voor zag ik op het synolgy forum zelf
iemand (al) een idee ?

DS214+ latest dsm

<?php
 ini_set('SMTP','smtp.ziggo.nl');
 ini_set('smtp_port','25');
?>

<?php $to = "somebody@somewhere.nl";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";

 mail($to, $subject, $body);
 if (mail($to, $subject, $body))
 { echo("<p>Email successfully sent!</p>"); }
 else { echo("<p>Email delivery failed…</p>");
 }
 ?>

Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 26 november 2014, 12:13:58
Heb ik ook last van. Op het Engelstalig  forum heb ik gelezen dat het probleem zit in dsm en dat synology op de hoogte is.... Tot een update van dsm moeten we het er dus mee doen.... :-(
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Hanssie op 29 november 2014, 18:13:08
Zelfde probleem hier. Op drie van mijn websites werken de contactformulieren niet meer! Misschien dat iemand hier iets aan heeft. https://forum.synology.com/enu/viewtopic.php?f=20&t=92788 Bij mij werkte het helaas niet en wacht met smart op de update van Synology!!!!
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Guido-b op 29 november 2014, 18:30:45
in Version : 5.1-5004 Update 2 staat:

6.Fixed the send-mail function in PHP.

ik heb de update geïnstalleerd maar nog steeds geen succes iemand een beter resultaat?
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Giellexe op 29 november 2014, 19:02:20
Bij mij werkt het.

Haal smtp en poort php comando eruit.
Hij haalt voortaan de gegevens van de mail server.
Wanneer dit gedaan.

Werk dan met headers!

Voorbeeld:

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Probeer<admin@jewebsite.nl>\r\n";

Bij mij werkt het zo
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Guido-b op 29 november 2014, 20:41:59
Meer als mij dank met headers werkt het idd wel
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Hanssie op 30 november 2014, 23:17:01
Kan iemand uitleggen wat je precies moet doen dan? Ik heb er niet zo heel veel verstand van. Want ondanks de 2e update werkt het bij mij nog steeds niet  :oops:
Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 01 december 2014, 04:12:17
Daar ben ik ook wel benieuwd naar want ook bij mij werkt ondanks update 2 mijn contact formulier nog niet...
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Giellexe op 01 december 2014, 06:57:29
Om het te laten werken heb je mail server nodig.
daar haalt hij namelijk de gegevens vandaan om te verzenden.

http://www.synology-forum.nl/mail-server/stappenplan-mail-server-mail-station-met-outlookthunderbird-voor-pop3-mail/
Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 01 december 2014, 06:59:09
Dat is bekend en draait ook als een zonnetje... Het contact formulier heeft altijd gewerkt tot dsm 5.1...
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Giellexe op 01 december 2014, 07:09:01
Kun je je contact script eens posten zal ik er eens naar kijken
Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 01 december 2014, 09:08:11
Dank voor het aanbod! Ik stuur je het script vanavond of morgen even!
Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 02 december 2014, 09:06:45
Hier bij mijn code. Het meeste heb ik overigen via een bestaand script dat ik van iemand heb gekregen. Ben zelf verre van een php expert...   8)

Het contactformulier:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
<title>xxxxxxxxxxx.nl | Startpagina</title>
<link rel="shortcut icon" href="favicon.ico" />
</head>
<body>
<p><a name="top"></a></p>
<div id="wrapper">
<!-- Header -->
<?php include('header.php'); ?>
<!-- Header end -->
<!-- Content  -->
<div id="content">
<!-- Content box -->
<div id="content-box">
<!-- Content box left -->
<div id="content-box-left">
<div id="content-box-left-in">
<!-- Content box with light blue background -->
<div class="box">
<div class="box-top">
<div class="box-bottom">
<div id="box-in">
<div class="article">
                                   
<h3>Contactpagina</h3>
<p>&nbsp;</p>
<p>Indien u vragen, suggesties of opmerkingen heeft horen wij die graag. Deze kunt in onderstaand formulier invullen. Bij voorbaat dank voor uw reactie!</p>
<p>&nbsp;</p>
<form id="contact" name="contact" action="contactscript.php" method="post">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="200"><p>Uw naam:</p></td>
                                                </tr>
                                                <tr>   
<td width="300"><input id="naam" type="text" name="naam" size="40" maxlength="40" /></td>
</tr>
<tr>
<td><p>Uw emailadres:</p></td>
                                                </tr>
                                                <tr>   
<td><input type="text" name="email" size="40" maxlength="40" /></td>
</tr>
<tr>
<td><p>Uw reactie:</p></td>
                                                </tr>
                                                <tr>   
<td><textarea name="opmerkingen" cols="50" rows="6"></textarea></td>
</tr>
</table>
<br />
<input type="submit" name="submit" value="  Verstuur  " />
</form>                                   
</div>
</div>
</div>
</div>
</div>
<!-- Content box with light blue background end -->
</div>
</div>
<!-- Content box left end -->
<!-- Content box right -->
<div id="content-box-right">
<div class="content-box-right-in">
<p>Contactformulier</p>
<div class="cleaner">&nbsp;</div>
</div>
</div>
<!-- Content box right end -->
<div class="cleaner">&nbsp;</div>
</div>
<!-- Content box end -->
</div>
<!-- Content end -->
<!-- Footer -->
    <?php include('footer.php'); ?>
<!-- Footer end -->
</div>
<!-- wrapper end -->
</body>
</html>

De code van het contactscript:
<?php
$naam 
htmlspecialchars($_POST['naam']);
$email htmlspecialchars($_POST['email']);
$opmerkingen htmlspecialchars($_POST['opmerkingen']);

//Controle of de velden zijn ingevuld
if (!$naam) {
header("Location: verplichtveld");
exit; }

if (!
$email) {
header("Location: verplichtveld");
exit; }

if (!
$opmerkingen) {
header("Location: verplichtveld");
exit; }

else {

// Content type header wordt ingesteld
$headers 'MIME-Version: 1.0' "\r\n"
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n"

//Tijd, datum, en IP-adres worden gecontroleerd
$tijd time();
$datum strftime("%d/%m/%y %H:%M"$tijd);
$ip getenv("REMOTE_ADDR");


// Gedeelte dat de ontvanger krijgt te zien
$message '<strong>reactie via website www.xxxxxxxxxxxx.nl:</strong><br/>' '<br/' 
'U heeft een nieuw bericht ontvangen van ' $naam '<br/>'
' Het bericht is vestuurd op: ' $datum '<br/>'
' Het e-mail adres van verzender is: ' $email '<br/>'
' Het IP-adres van de verzender is: ' $ip '<br/>'
'<br/>'
'Hieronder kunt u de ingevulde gegevens bekijken. <br/>'
'<br/>'
'============================================= <br/>'
'De persoonlijke gegevens zijn: <br/>'
'<br/>'
'<strong>Naam: </strong>' $naam '<br/>'
'<strong>Email: </strong>' $email '<br/>'
'<br/>'
'============================================= <br/>'
'De bezoeker heeft het volgende ingevuld:<br/>'
'<br/>'
$opmerkingen '<br/>'
'<br/>'
'============================================= <br/>';


// Gedeelte voor het verzenden van het bericht
$mailadres "reactiewebsite@xxxxxxxxxxxxxxxx.nl";
$message str_replace ("<br>","\n"$message);
$headers .= "From: xxxxxxxxxxxxxxxx.nl <reactiewebsite@xxxxxxxxxxxxxxxx.nl>" "\r\n";
mail("$mailadres""Reactie via website"$message$headers); 
header("Location: bedankt");
}

?>

Ik ben benieuwd waar de oplossing in kan zitten...

Alvast bedankt voor het meedenken in ieder geval!

Gr. Marc
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Giellexe op 02 december 2014, 10:22:01
Voeg deze regel toe bij headers.

$headers .= "From: Probeer<admin@jewebsite.nl>\r\n";

Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 02 december 2014, 10:35:04
Bedankt voor je reactie!

helaas zonder het gewenste resultaat...  :oops:
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Giellexe op 02 december 2014, 10:42:51
Ok ik kijk vanavond even goed na
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Hanssie op 02 december 2014, 14:02:43
Bij mij ook niet.

Tevens ontvang ik een dead letter in de map web.

Iemand enig idee?
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Giellexe op 02 december 2014, 18:48:42
<?php
$naam 
htmlspecialchars($_POST['naam']);
$email htmlspecialchars($_POST['email']);
$opmerkingen htmlspecialchars($_POST['opmerkingen']);

//Controle of de velden zijn ingevuld
if (!$naam) {
header("Location: verplichtveld");
exit; }

if (!
$email) {
header("Location: verplichtveld");
exit; }

if (!
$opmerkingen) {
header("Location: verplichtveld");
exit; }

else {

// Content type header wordt ingesteld
$headers  "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Je website!<contactxxxxxxxxx.nl>\r\n";


//Tijd, datum, en IP-adres worden gecontroleerd
$tijd time();
$datum strftime("%d/%m/%y %H:%M"$tijd);
$ip getenv("REMOTE_ADDR");


// Gedeelte dat de ontvanger krijgt te zien
$message '<strong>reactie via website www.xxxxxxxxxxxx.nl:</strong><br/>' '<br/' 
'U heeft een nieuw bericht ontvangen van ' $naam '<br/>'
' Het bericht is vestuurd op: ' $datum '<br/>'
' Het e-mail adres van verzender is: ' $email '<br/>'
' Het IP-adres van de verzender is: ' $ip '<br/>'
'<br/>'
'Hieronder kunt u de ingevulde gegevens bekijken. <br/>'
'<br/>'
'============================================= <br/>'
'De persoonlijke gegevens zijn: <br/>'
'<br/>'
'<strong>Naam: </strong>' $naam '<br/>'
'<strong>Email: </strong>' $email '<br/>'
'<br/>'
'============================================= <br/>'
'De bezoeker heeft het volgende ingevuld:<br/>'
'<br/>'
$opmerkingen '<br/>'
'<br/>'
'============================================= <br/>';


// Gedeelte voor het verzenden van het bericht
$mailadres "xxxx@xxxxxx.nl";
$message str_replace ("<br>","\n"$message);
mail($mailadres"Reactie via website"$message$headers); 
header("Location: bedankt");
}

?>

Het werkt weer.
Je kunt met iets op roepen niet in "" tekens zetten.
Dit werkt niet.

Succes!! 8)
Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 02 december 2014, 19:48:06
Wederom hartelijk dank voor je tijd! Klink ook logisch als ik naar de code kijk. Ik heb het aangepast, maar helaas nog steeds zonder het gewenste resultaat.

Ook bij mij komt er een bestand met de naam 'dead.letter' in de web directory te staan. Ik vrees dat ik nog verder moet zoeken. Gelukkig ben ik niet de enige en heb dan ook de hoop dat er een oplossing komt, vroeg of laat... :D
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Giellexe op 04 december 2014, 17:45:15
Ik heb hem door.

Ik vond het tijd om een keer mijn server leeg te gooien.
Veel troep van mensen die er niks meer mee deden.
En kreeg het in begin ook niet meer aan de praat.
Na veel gestoei is het gelukt!

Wanneer je mail(); functie wilt gebruiken stel dan de E-mail melding in!

Ga naar:

Configuratie scherm -> Melding -> En vink E-mail meldingen aan.
Vul de gegevens in !

En als het goed is moet het Werken.

Zo niet dan zal je even de ssmtp.conf moeten aanpassen naar deze gegevens!

root=admin@jewebsite.nl
mailhub=smtp.ziggo.nl:587
hostname=jewebsite.nl
UseTLS=YES
UseSTARTTLS=YES
AuthUser=Login gegevens van je provider
AuthPass=je wachtwoord
AuthMethod=LOGIN

SUCCES !!!!
Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 04 december 2014, 17:53:10
Ik heb hem ook door, althans gedeeltelijk...  :D

Bij configuratiescherm/meldingen stond bij mij poort 465 vermeld. Dit heeft altijd gewerkt, maar blijkbaar nu niet meer. Deze nu ingesteld op poort 25 en de mail komt weer binnen. Nu krijg ik alleen nog een melding dat de bedankpagina niet gevonden wordt. Daar zullen we de komende dagen eens naar kijken. De gewone mail versturen via de mailserver en mijn mac mailprogramma op poort 465 lukt overigens wel... Ik denk dat Synology ergens nog een bugje heeft zitten...

Enorm bedankt voor het meedenken en het uiteindelijk wijzen in de juiste richting!

Gr. Marc
Titel: Re: php mail() functie stuurt geen mail
Bericht door: marcblom op 04 december 2014, 18:05:30
En ook het probleem van de bedank pagina die niet laadt en ik benoem in mijn vorige post is opgelost. In het oude script stond geen extensie vermeld bij de location commando's. Ter illustratie één voorbeeld uit het script:

if (!$opmerkingen) {
header("Location: verplichtveld");
exit; }

Nu achter verplichtveld .php toegevoegd en voila, het werkt weer. Wel vreemd dat het vroeger allemaal gewerkt heeft en nu niet meer...

Ik meld het in ieder geval, wellicht kunnen anderen er hun voordeel mee doen.
Titel: Re: php mail() functie stuurt geen mail
Bericht door: Hanssie op 07 december 2014, 13:46:31
Ik heb hem door.

Ik vond het tijd om een keer mijn server leeg te gooien.
Veel troep van mensen die er niks meer mee deden.
En kreeg het in begin ook niet meer aan de praat.
Na veel gestoei is het gelukt!

Wanneer je mail(); functie wilt gebruiken stel dan de E-mail melding in!

Ga naar:

Configuratie scherm -> Melding -> En vink E-mail meldingen aan.
Vul de gegevens in !

En als het goed is moet het Werken.


YESSSS!
Hoe simpel kan het zijn. Dit was voor mij de oplossing!
Raar maar waar. Voor de update stonden deze instellingen goed.

Thanks!