Ga naar inhoud

XAMPP en WIN7 en email verzenden in php


Bruver

Aanbevolen berichten

Hallo,

ik heb sinds kort win7. Eerst wilde xampp niet werken toen heb ik deze laten draaien op een oudere versie van windows en werkt hij nu wel. Maar nu wil ik emails verzenden via de website die op de testserver draait en lukt dit niet terwijl dit met vista wel werkt. Ik krijg deze foutmelding terwijl, als je de poorten controleert, de poort wel degelijk vrij is!

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\xampp\htdocs\forum\rslt\admin\mail.php on line 70

win7 en xampp niet zo'n goed huwelijk of ligt het aan een instelling in win7?

Iemand ervaring ermee?

Link naar reactie
Delen op andere sites

Komt omdat in je php.ini file de mailserver nog niet goed is ingesteld denk ik.

Maar ik zou Xamp weg gooien... en usbwebserver pakken. hoef je niet te installeren, en draait op alle windows systemen. (getest).

USBwebserver heeft:

- Apache

- PHP

- PHP modules (die je kan aanzetten, en ook staan er een aantal standaard aan)

- mysql database

- phpmyadmin (zo goed als de laatste versie)

- mail modules

- etc etc etc.

Het werkt heel makkelijk, download usbwebserver.rar en pak het uit op een usb stick. (of ergens op je pc/laptop). Start usbwebserver.exe op en wacht totdat de groene bolletjes naast apache en mysql staan. Nu is je webserver opgestart en moet je alleen de instellingen even aanpassen.

Apache moet op 80 draaien en niet op 8080 (default usbwebserver)

mysql moet op 3306 draaien en niet op 3307 (default usbwebserver)

Voor de rest kun je in de configuratie bestanden (php.ini, apache.host, etc etc) de instellingen aanpassen.

Let wel op, dit is niet standaard in de php map, maar in de settings map. Dit omdat usbwebserver instellingen ook ondersteund vanuit het startschermpje.

Wil je de webserver automatisch laten starten wanneer windows opstart, zet je deze gewoon in je opstart-folder.

De website bestanden staan in de "Root" folder.

Meer hoef je niet te doen, en je kunt je phpcode uittesten.

==============

een tip voor als je usbwebserver gaat gebruiken.

zoek in php.ini (in de settings folder) naar de regel:

error_reporting = E_ALL

en vervang dit door:

error_reporting = E_RECOVERABLE_ERROR

Dit is namelijk voor bepaalde programmeer code die wel goed is, maar toch wel kleine foutjes geeft. Wil je alles super goed programmeren laat je E_ALL staan.

usbwebserver werkt stukken beter dan Xamp, en alle andere dingen los installeren en moeten koppelen.

Wil je TOCH Xamp blijven gebruiken!!! dan moet je in de php.ini file aanpassen.

zoek naar:

[mail function]

Hieronder staat standaard (als het goed is) dit:

; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

zorg dat de puntcommas voor alle regels staan behalve deze:

SMTP = localhost
smtp_port = 25

De bovenstaande code wilt namelijk zeggen dat de mailserver op de lokale pc draait. Dit is niet het geval, dus moet deze worden verwezen naar wel een werkende mailserver pak bijvoorbeeld de mailserver van je provider. (Niet alle providers ondersteunen dat, en mag je dat doen).

voor zeelandnet (waar ik gebruik van maak) is dat mail.zeelandnet.nl

Probeer nu een mailtje te verzenden via het mail() commando en je zult zien dat het mailtje netjes aankomt. Ik weet niet of dit ook werkt met usbwebserver (standaard localhost bedoel ik dan). Eerlijk gezegd heb ik dat nog niet uitgetest.

Met vriendelijke groet,

Leroy

Link naar reactie
Delen op andere sites

ongelooflijk bedankt! Ik heb al enkele uren zitten zoeken op internet voor een oplossing en nu krijg ik in korte tijd degelijke info. Ik ga het in het weekend uitproberen maar er bijna zeker van dat het gaat lukken.

Met vriendelijke groeten Bruno.

Link naar reactie
Delen op andere sites

Instellingen in XAMPP waren juist! Dan maar usbwebserver geïnstalleerd enkele aanpassingen gedaan en uitgetest! Ik had geen foutmeldingen niet meer maar de mails werden niet verzonden! Waarschijnlijk nog een foutje in het script zeker! Nog eens bedankt voor de professionele hulp!

grt Bruno

Link naar reactie
Delen op andere sites

Gelukkig :P

Heb je de instellingen bij PHP ook aangepast naar de juiste mailconfiguratie?? (in de php.ini bestand).

Je moet wel opletten dat je het in de settings map aanpast. Want usbwebserver neemt eerst de instellingen over van de bestanden in de settings map. Dan zijn eigen configuratie en daarna worden de instellingen pas doorgevoerd aan de ECHTE bestanden (in de map php voor de php.ini bestand).

Dus kortgezegd zo:

Settings-map -> Software-configuratie -> opslaan als nieuwe configuratie

Je moet wel opletten dat je usbwebserver even opnieuw opstart om de instellingen actief te zetten. Dus even afsluiten dan de instellingen veranderen en dan weer terug opstarten.

Je kunt controleren of je instellingen goed zijn doorgevoerd door in de juiste mapjes te kijken (voor php.ini de PHP map).

Je moet de mailserver zo instellen dat hij connecteert naar jouw internet provider. Dit kun je meestal wel op internet vinden wat jouw provider is.

Groeten,

Leroy

Link naar reactie
Delen op andere sites

Mooi zo!!

Je kunt die sendmail_from in de php.ini file ook overschrijven door aan jouw php code headers mee te geven.

Zo kun je de mail laten versturen vanuit bijvoorbeeld jouw eigen domeinnaam. En daarbij ook jouw naam. Hiermee kun je ook opmaak aan je tekst toevoegen etc.

dit zijn de headers die je aan je mail commando kunt meegeven: (van php.net)

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

In jouw geval kun je de CC en de BCC regel verwijderen of highlighten. zo dus:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
//$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
//$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

Je ziet dat de eigenschappen nu zo ingesteld staan dat het mailtje wordt verstuurd vanuit: "Birthday reminder" met het emailadres "birthday@example.com"

en dat het verstuurd wordt naar: "mary" met het emailadres "mary@example.com".

Dit kun je aanpassen door hier zelf iets in te vullen.

Mocht je het met een contactformulier willen verzenden kun je hier nog altijd een $_POST element van maken.

Bijvoorbeeld als iemand zijn naam en emailadres in moet vullen bij het contactformulier wordt het:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: ' .$_POST['naam']. ' <' .$_POST['email']. '>' . "\r\n";
//$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
//$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

Je mail commando wordt dan:

// hier staan die headers van hierboven
if(mail("ontvanger@example.com", "onderwerp", "inhoud", $headers)){
     echo "de mail is succesvol verzonden";
}else{
     echo "er ging iets fout met de mail te verzenden, gelieve contact op te nemen met jouwemail@domein.be";
}

Ik hoop dat dit nog iets meer informatie geeft.

Groeten,

Leroy

aangepast door leroy
Link naar reactie
Delen op andere sites

hallo Leroy,

Het is inderdaad met een contactformulier dat de mail wordt verzonden en de extra informatie is wel meegenomen!

Bedankt nog voor de hulp en het vele werk dat je erin heb gestoken. Ik denk dat ik wel nog zal te vinden zijn op het forum. Er is wel veel info te vinden maar dit is wel zeer verstaanbaar gebracht! Ik ben bezig met een nieuwe site voor het toneel en zal waarschijnlijk wel nog eens voor problemen staan! Dus misschien tot later!

met vriendelijke groeten Bruno.

Link naar reactie
Delen op andere sites

Geen probleem, als je ergens tegenaan loopt.. ook al is het met het programmeren van je website (php, html, css, ajax, etc etc) dan kun je hier alsnog altijd een topic plaatsen. Ik of iemand anders van pc-helpforum zal dan proberen om je probleem op te lossen.

Bij deze kan het topic dus gesloten worden.

Groeten,

Leroy

Link naar reactie
Delen op andere sites

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.