mail formulier stuurt de mail niet door

Status
Niet open voor verdere reacties.

Valentijn2012

Gebruiker
Lid geworden
10 feb 2012
Berichten
15
Ik heb een mail formulier die ik maar niet aan de praat krijg. Iemand die mij aub kan helpen? Ik kom er niet uit!

De configuration xml heb ik aangepast (mijn email erin gezet enz) maar als ik een mailtje stuur naar mezelf dan krijg ik niks.
dit is de php (url_send.php):


PHP:
<?php



$SENDTO =$_POST['SENDTO']; ///your e-mail address ( change in configuration xml file)
$message.=$_POST['HEADLINE']."\r\n\r\n\r\n";  /////entrance e-mail ( change in configuration xml file)
$KEY_SUBJECT=$_POST['KEY_SUBJECT'];  /////  ( change in configuration xml file)
$KEY_RETURNABLE_EMAIL=$_POST['KEY_RETURNABLE_EMAIL'];  ///// ( change in configuration xml file)





/////////////////////////////////////////////////////////////code send e-mail

foreach ($_POST as $varname => $varvalue) {
$array_value=explode(":",$varvalue);
$array[$varname][0]=$array_value[0];
$array[$varname][1]=$array_value[1];
}

$array=array_reverse($array);   

foreach ($array as $varname => $varvalue) {
if($varname!="onLoad"&&$varname!="SENDTO"&&$varname!="HEADLINE"&&$varname!="KEY_SUBJECT"&&$varname!="KEY_RETURNABLE_EMAIL"){
$message.=$varvalue[0]." : \r\n ".$varvalue[1]."\r\n\r\n\n\n";
}
}

$subject =$array[$KEY_SUBJECT][1];  /////subject
$email_from=$array[$KEY_RETURNABLE_EMAIL][1];


/////header - version 1
$header = "From:$email_from <$email_from>\n";
$header .= "MIME-Version: 1.0\r\n"."Content-type: text/plain; charset=utf-8\r\n";
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-2\"\n";
$header .= "Content-Transfer-Encoding: quoted-printable\n\n";


//////header - version2 
///$header = "FROM:emailaddress";







mail($SENDTO,$subject,$message,$header);
echo "&senden=ok&";

/////////////////////////////////////////////////////////end code

?>
 
Bekijk comments Maar je code is moeilijk leesbaar

PHP:
<?php
/**
 * HOOFDLETERS gebruik je om een constante aan te duiden dus dien je te veranderen in kleine letters één hoofdleter of elk eerste leter van  woord is ook nog ok 
*/ 
$SENDTO =$_POST['SENDTO']; ///your e-mail address ( change in configuration xml file)
$message.=$_POST['HEADLINE']."\r\n\r\n\r\n";  /////entrance e-mail ( change in configuration xml file)
$KEY_SUBJECT=$_POST['KEY_SUBJECT'];  /////  ( change in configuration xml file)
$KEY_RETURNABLE_EMAIL=$_POST['KEY_RETURNABLE_EMAIL'];  ///// ( change in configuration xml file)

/////////////////////////////////////////////////////////////code send e-mail
 
foreach ($_POST as $varname => $varvalue) {
    $array_value=explode(":",$varvalue);
    $array[$varname][0]=$array_value[0];
    $array[$varname][1]=$array_value[1];
}

$array=array_reverse($array);   
 
foreach ($array as $varname => $varvalue) {
    if($varname!="onLoad"&&$varname!="SENDTO"&&$varname!="HEADLINE"&&$varname!="KEY_SUBJECT"&&$varname!="KEY_RETURNABLE_EMAIL"){
        $message.=$varvalue[0]." : \r\n ".$varvalue[1]."\r\n\r\n\n\n";
    }
} 
$subject =$array[$KEY_SUBJECT][1];  /////subject
$email_from=$array[$KEY_RETURNABLE_EMAIL][1];
$header = "From:$email_from <$email_from>\n";
$header .= "MIME-Version: 1.0\r\n"."Content-type: text/plain; charset=utf-8\r\n";//hier ga je ook de mist in \r\n is voor windows server \n is woor linux
/**
 *dit slaat echt mijn verbeelding eerst versturen als utf-8 en datn als iso Je gaat één van de twee moeten kiezen 
 */
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-2\"\n";
$header .= "Content-Transfer-Encoding: quoted-printable\n\n";
mail($SENDTO,$subject,$message,$header);
echo "&senden=ok&";
?>
 
Ok, bedankt! De hoofdletters heb ik nu vervangen door kleine letters behalve in 'sendTo'.
Ik heb windows. Wat moet ik dan precies veranderen of wijzigen?

Ik heb tot nu toe dit:

PHP:
<?php



$sendTo =$_POST['sendTo']; ///your e-mail adresse ( change in configuration xml file)
$message =$_POST['headline']."\r\n\r\n\r\n";  /////entrance e-mail ( change in configuration xml file)
$key_subject =$_POST['key_subject'];  /////  ( change in configuration xml file)
$key_returnable_email =$_POST['key_returnable_email'];  ///// ( change in configuration xml file)





/////////////////////////////////////////////////////////////code send e-mail

foreach ($_POST as $varname => $varvalue) {
$array_value=explode(":",$varvalue);
$array[$varname][0]=$array_value[0];
$array[$varname][1]=$array_value[1];
}

$array=array_reverse($array);   

foreach ($array as $varname => $varvalue) {
if($varname!="onLoad"&&$varname!="sendTo"&&$varname!="headline"&&$varname!="key_subject"&&$varname!="key_returnable_email"){
$message.=$varvalue[0]." : \r\n ".$varvalue[1]."\r\n\r\n\n\n";
}
}

$subject =$array[$key_subject][1];  /////subject
$email_from=$array[$key_returnable_email][1];


/////header - version 1
$header = "From:$email_from <$email_from>\n";
$header .= "MIME-Version: 1.0\r\n"."Content-type: text/plain; charset=utf-8\r\n";
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-2\"\n";
$header .= "Content-Transfer-Encoding: quoted-printable\n\n";


//////header - version2 
///$header = "eMw website - CONTACT FORM";







mail($sendTo, $subject, $message, $header);
echo "&senden=ok&";

/////////////////////////////////////////////////////////end code

?>
 
Even een vraagje, hoe test je je script? Via een eigen webserver/eigen pc met bijv. xampp of via een domein?

Is het eerste het geval, heb je dan wel poort 25 naar buiten open staan?? Anders zal er nooit een mail verstuurd worden!
 
Nee, inderdaad. Klopt.
Maar ik weet niet welke regels ik moet wijzigen en/of weglaten.
 
PHP:
$header .= "MIME-Version: 1.0\r\n"."Content-type: text/plain; charset=utf-8\r\n";
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-2\"\n";

zal

$
PHP:
header .= "MIME-Version: 1.0\n"."Content-type: text/plain; charset=utf-8\n";
dit maken of

PHP:
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: text/plain;\n";
$header .= "\tcharset=\"iso-8859-2\"\n";
 
Ik heb Windows, moet ik dan niet dit gebruiken?

PHP:
$header .= "MIME-Version: 1.0\r\n"."Content-type: text/plain; charset=utf-8\r\n";

Of maakt het niet uit?
En is de rest van de code wel goed?
 
Ok, ik heb t geprobeerd met \n zoals je zei

PHP:
<?php



$sendTo =$_POST['sendTo']; ///your e-mail adresse ( change in configuration xml file)
$message.=$_POST['headline']."\r\n\r\n\r\n";  /////entrance e-mail ( change in configuration xml file)
$key_subject =$_POST['key_subject'];  /////  ( change in configuration xml file)
$key_returnable_email =$_POST['key_returnable_email'];  ///// ( change in configuration xml file)





/////////////////////////////////////////////////////////////code send e-mail

foreach ($_POST as $varname => $varvalue) {
$array_value=explode(":",$varvalue);
$array[$varname][0]=$array_value[0];
$array[$varname][1]=$array_value[1];
}

$array=array_reverse($array);   

foreach ($array as $varname => $varvalue) {
if($varname!="onLoad"&&$varname!="sendTo"&&$varname!="headline"&&$varname!="key_subject"&&$varname!="key_returnable_email"){
$message.=$varvalue[0]." : \r\n ".$varvalue[1]."\r\n\r\n\n\n";
}
}

$subject =$array[$key_subject][1];  /////subject
$email_from=$array[$key_returnable_email][1];


$header .= "MIME-Version: 1.0\n"."Content-type: text/plain; charset=utf-8\n";

mail($sendTo, $subject, $message, $header);
echo "&senden=ok&";

/////////////////////////////////////////////////////////end code

?>

Maar hij doet het nog steeds niet :(
 
wat heeft volgende code in plaats van mail($sendTo, $subject, $message, $header);
PHP:
$mail = new mail();
$mail->debugMode=true;
$mail($sendTo, $subject, $message, $header);
 
ik heb nu

PHP:
<?php



$sendTo =$_POST['sendTo']; ///your e-mail adresse ( change in configuration xml file)
$message.=$_POST['headline']."\r\n\r\n\r\n";  /////entrance e-mail ( change in configuration xml file)
$key_subject =$_POST['key_subject'];  /////  ( change in configuration xml file)
$key_returnable_email =$_POST['key_returnable_email'];  ///// ( change in configuration xml file)





/////////////////////////////////////////////////////////////code send e-mail

foreach ($_POST as $varname => $varvalue) {
$array_value=explode(":",$varvalue);
$array[$varname][0]=$array_value[0];
$array[$varname][1]=$array_value[1];
}

$array=array_reverse($array);   

foreach ($array as $varname => $varvalue) {
if($varname!="onLoad"&&$varname!="sendTo"&&$varname!="headline"&&$varname!="key_subject"&&$varname!="key_returnable_email"){
$message.=$varvalue[0]." : \r\n ".$varvalue[1]."\r\n\r\n\n\n";
}
}

$subject =$array[$key_subject][1];  /////subject
$email_from=$array[$key_returnable_email][1];


$header .= "MIME-Version: 1.0\n"."Content-type: text/plain; charset=utf-8\n";

$mail = new mail();
$mail->debugMode=true;
$mail($sendTo, $subject, $message, $header);
echo "&senden=ok&";

/////////////////////////////////////////////////////////end code

?>

Maar het werkt nog steeds niet :(
wat moest ik nou weghalen of wijzigen?
 
hij moet nu toch iets laten weten wat er mis gaat
de laatste code dient om uw mail te debugen als u echt niets ziet moet u dit tijdelijk bovenaan je script plaatsen


PHP:
// Report all PHP errors
error_reporting(E_ALL);

plaats hieronder alles wat hij zegt
 
Hoe kan ik zien dat hij een melding geeft?
Hij geeft alleen de melding 'Verzonden' (wat ik zelf heb ingesteld) als ik op Verzenden druk.

Moet er nog iets worden veranderd in het XML bestand waar het aan gekoppeld is?

Originele XML (configuration_form.xml) is:

Code:
<?xml version="1.0" encoding="utf-8"?>


<configuration>
		
	
<!-- BACKGROUND FORM -->
<BACKGROUND_COLOR>0x20121b,90</BACKGROUND_COLOR>

<!-- color border error -->
<COLOR_BORDER_ERROR>0xFF0000,100</COLOR_BORDER_ERROR>

<!-- color border select -->
<COLOR_BORDER_SELECT>0xa42775,100</COLOR_BORDER_SELECT>

<!-- background input text -->
<BACKGROUND_INPUT_TEXT>0x281c25,100</BACKGROUND_INPUT_TEXT>

<!-- background input text - frame -->
<BACKGROUND_INPUT_TEXT_FRAME>0xa42775,100</BACKGROUND_INPUT_TEXT_FRAME>

<!-- background color button send and reset -->
<BUTTON_BCG_COLOR>0xb42980,100</BUTTON_BCG_COLOR>
	
<!-- pathway php file -->
<URLSEND>php/url_send.php</URLSEND>

<!-- alert send==true -->
<SENDTRUE>sendTrue</SENDTRUE>

<!-- alert send = false -->
<SENDFALSE>sendFalse</SENDFALSE>

<!-- alert send==progress -->
<SENDPROGRESS>sendProgress</SENDPROGRESS>

<!-- button send -->
<BUTTONSEND>Send</BUTTONSEND>

<!-- button reset -->
<BUTTONRESET>Reset</BUTTONRESET>

<!-- space y row -->
<SPACEY>14</SPACEY>

<!-- align button  R OR L -->
<ALIGNBUTTON>L</ALIGNBUTTON>

<!-- title color -->
<TITLECOLOR>0xFFFFFF</TITLECOLOR>

<!-- input color -->
<INPUTCOLOR>0xc8adc5</INPUTCOLOR>

<!-- input background -->
<INPUTBACKGRONDCOLOR></INPUTBACKGRONDCOLOR>

<!-- border color input -->
<BORDERCOLOR>0xFF0000</BORDERCOLOR>

<!-- error color  -->
<ERRORBORDERCOLOR>0xFF0000,0</ERRORBORDERCOLOR>

<!-- alert color -->
<ALERTCOLOR>0xFFFFFF</ALERTCOLOR>

<!-- button text color -->
<BUTTONTEXTCOLOR>0xFFFFFF</BUTTONTEXTCOLOR>

<!-- color background button -->
<BUTTONBACKGROUNDCOLOR>0x13AFD9,100</BUTTONBACKGROUNDCOLOR>

<!-- position x -->
<POSITION_X>20</POSITION_X>

<!-- position y -->
<POSITION_Y>90</POSITION_Y>

<!-- your e-mail -->
<SENDTO>your_mail@gmail.com</SENDTO>

<!-- headline e-mail -->
<HEADLINE>Hello !</HEADLINE>


	

</configuration>
 
Komt de mail aan ??

verander effe
PHP:
if($mail($sendTo, $subject, $message, $header)){
   echo "&senden=ok&";
}else {
   echo "helaas toch niet verzonden";
}
zet die debug maar terug op false;
 
Hij zegt gewoon 'Verzonden'

in de XML (configuration_form.xml) wordt gebruikt:

Code:
<!-- alert send==true -->
<SENDTRUE>Verzonden</SENDTRUE>

<!-- alert send = false -->
<SENDFALSE>Niet verzonden</SENDFALSE>

Maar wat moet uit de PHP script en wat moet gewijzigd worden?
Want zoals ik het nu heb werkt het niet :(

Op de contactpagina komt elke keer 'Verzonden' onder het formulier te staan. Maar er komt niks binnen.
 
Even een vraagje, hoe test je je script? Via een eigen webserver/eigen pc met bijv. xampp of via een domein?

Is het eerste het geval, heb je dan wel poort 25 naar buiten open staan?? Anders zal er nooit een mail verstuurd worden!

Zou je hier eerst eens duidelijk antwoord op willen geven?
 
Komt ook niet binnen in spam, daar had ik inderdaad al naar gekeken.
Ok, geprobeerd op djdb.be, maar wederom geen mail :(


Ik weet dat SMTP poort 25 gebruikt, vandaar dat ik 'inderdaad, klopt' zei.
Maar ik doe t via n pagina waar het contactformulier op staat. Maar ik had eerst een andere contactpagina erop staan en die deed het wel,
dus ik heb gewoon iets verkeerd gedaan qua codering. Of hoe het PHP script in verbinding staat met de config XML.
 
Ik had nog iets over het hoofd gezien

ref:http://expertester.wordpress.com/2010/07/07/how-to-send-email-from-xampp-php/

Code:
Edit your php.ini (xampp\php\php.ini). Search for [mail function]  and change these parameters accordingly.

    SMTP = smtp.gmail.com
    smtp_port = 587
    sendmail_from = [your_gmail_username]@gmail.com
        Note: this gmail account will be used to send the email
    sendmail_path = “\”D:\xampp\sendmail\sendmail.exe\” -t”
        Note: I did install my xampp at D:\xampp
SMTP zal je moeten instellen als je outlook of mailaccound zou instellen maar dit zou je moeten weten van je internetprovider
belgie heb je
uit.telenet.be
smtp.skynet.be
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan