mail versturen via xampp

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Horst

Martijn Horst

28/10/2018 22:21:11
Quote Anchor link
Het lukt me maar niet om de mail() functie van php te laten werken. De website waar ik nu aan werk draait lokaal op xampp. Voor die website ben ik een login systeem aan het bouwen en wil een activeringsmail laten versturen via de website. Dat laatste lukt dus niet.

Kan iemand me vertellen wat ik moet doen om het te laten werken?

Martijn
 
PHP hulp

PHP hulp

28/03/2020 21:32:10
 
Thomas van den Heuvel

Thomas van den Heuvel

28/10/2018 22:55:16
Quote Anchor link
Allereerst is het misschien wel handig om te weten waarom dit niet werkt. De reden is simpel: het enige wat de mail() functie van PHP doet is een verzoek doorsturen aan een proces dat kan mailen. Dit is doorgaans een mailserver. Op desktop computers en laptops zijn zelden tot nooit mailservers actief. Vergelijk het met het op de post doen van een brief (het aanroepen van mail()) terwijl de brievenbus nooit geleegd wordt (mailserver die het verder afhandelen en doorsturen faciliteert). Oftewel: PHP mailt zelf niets / kan het mailen niet zelf afhandelen. PHP geeft de mail door aan een proces wat dit wel kan.

Je kunt dit o.a. oplossen door:
1. de SMTP-server van XAMPP in te stellen op die van jouw ISP
2. te communiceren met een andere mailserver zoals die van GMail, waarbij je bijvoorbeeld gebruik maakt van een library als PHPMailer

Hierbij lijkt het mij wel heel verstandig om een soort van test modus in te programmeren, zodat bijvoorbeeld alle mail naar een test e-mailadres gaat. Het komt namelijk geregeld voor dat mensen een snapshot van een live database terughalen en dan een mailtest uitvoeren waarbij bestaande e-mailadressen van klanten en zakelijke contacten per ongeluk worden gebruikt... Oeps. Dat staat nogal onprofessioneel, dus zorg dat is voorzien in zo'n test modus in het ontwerp van je mailfunctionaliteit.

Programmeer hiertoe bijvoorbeeld een wrapper(functie) die intern bepaalt -bijvoorbeeld op grond van configuratievariabelen- wat er precies met de mail moet gebeuren. Zorg vervolgens dat alle mail-aanroepen via deze wrapper plaatsvinden, zodat al het mailverkeer vanuit je applicatie door hetzelfde poortje gaat.
Gewijzigd op 29/10/2018 17:02:04 door Thomas van den Heuvel
 
Yoop Overmaat

Yoop Overmaat

29/10/2018 15:55:25
Quote Anchor link
De eerste ingeving bij dit het verhaal: staan poort 25 & 26 open? Dit omdat er iets van een xampp staat, is een niet - standaard hosting opzet. Sommige providers hebben/houden deez poorten standaard gesloten wegens spam.
 
Ben van Velzen

Ben van Velzen

29/10/2018 21:33:35
Quote Anchor link
Waarom zou je poort 26 open zetten? Die poort wordt niet voor mail gebruikt. Maar zelfs dan nog, om mail te versturen hoef je zelf niets open te zetten. Afhankelijk van je ISP is 25 naar buiten gesloten though.
 
Yoop Overmaat

Yoop Overmaat

29/10/2018 21:57:30
Quote Anchor link
Ben van Velzen op 29/10/2018 21:33:35:
Waarom zou je poort 26 open zetten? Die poort wordt niet voor mail gebruikt. Maar zelfs dan nog, om mail te versturen hoef je zelf niets open te zetten. Afhankelijk van je ISP is 25 naar buiten gesloten though.


Poort 25 is standaard verzenden & poort 26 ontvangen van mail onder het smtp-protocol, als 25 geblokkeerd is heeft het geen nut om op poort 26 op een reactie van voorafgaande te wachten, toch?
 
Ben van Velzen

Ben van Velzen

29/10/2018 21:59:14
Quote Anchor link
Waar haal je het vandaan? Er is de MTA poort, dit is 25, bedoeld voor verzenden EN ontvangen tussen verschillende MTA's. Er is een submission poort die bedoeld is om mail naartoe te gooien. Dat is poort 587. Geen andere poorten, nergens.
Gewijzigd op 29/10/2018 22:00:15 door Ben van Velzen
 
Martijn Horst

Martijn Horst

29/10/2018 22:00:35
Quote Anchor link
Oke, ik weet nu wat meer. Mercury mailserver heb ik vervangen door hMailServer. Ik heb in hMailServer een diagnostics uitgevoerd en hiervan heb ik een screenprint van gemaakt;

https://drive.google.com/open?id=1jy4M6Be7HUxjhYpgE55qpbY3bdz0BocN

Er is een probleem met de MX record volgens de diagnostics.

Ik heb hier nog niet zo veel kaas van gegeten maar kan het zijn dat ik die MX record mis en daardoor die mail () functie niet werkt?

Martijn
Gewijzigd op 29/10/2018 22:02:30 door Martijn Horst
 
Thomas van den Heuvel

Thomas van den Heuvel

29/10/2018 22:08:43
Quote Anchor link
Uhh, je kunt niet zomaar een eigen postkantoor (mailserver) beginnen. En zelfs al doe je dat op deze manier, dan moet deze in verbinding staan met andere postkantoren, anders kun je alleen maar lokaal mail naar jezelf sturen. Want niemand anders kent (noch vertrouwt) jouw persoonlijke postkantoor.

Het lijkt mij een stuk makkelijker dat je -als je lokaal een XAMPP servertje hebt draaien- tot op zekere hoogte het een en ander simuleert, waarbij je gebruik maakt van bestaande (online) mailservers. Dit staat ook het dichtste bij de praktijk, omdat je daadwerkelijk via het internet mail verstuurt.

Houd het gewoon simpel. De simpelste manier is gewoon de SMTP-server van je provider instellen. Raadpleeg een FAQ van je provider hoe je deze voor een mailprogramma in zou moeten stellen. Dit doe je dan in je XAMPP configuratie. Herstarten. Klaar. Simpel.

EDIT: ik denk ook niet dat het uitmaakt dat de MX-records niet werken, als je dit toch alleen maar lokaal gebruikt. Kijk anders eens hoe je die mailserver enkel voor lokaal gebruik instelt. Al lijkt mij dat nog steeds een hoop extra werk met weinig extra meerwaarde.
Gewijzigd op 29/10/2018 22:13:22 door Thomas van den Heuvel
 
Martijn Horst

Martijn Horst

29/10/2018 22:22:40
Quote Anchor link
Dat is ook de bedoeling, mail naar me zelf sturen :-) en puur om die account die is aangemaakt te kunnen activeren en andere mail activiteiten. Het heeft namelijk niet zo veel zin om een mail te versturen via internet als ik toch alleen de website lokaal heb draaien en hier ook lokaal mail kan ontvangen.
Gewijzigd op 29/10/2018 22:24:30 door Martijn Horst
 
Thomas van den Heuvel

Thomas van den Heuvel

29/10/2018 22:25:44
Quote Anchor link
Maar het is wel natuurgetrouwer (gaat uiteindelijk toch over het internet), eenvoudiger (geen extra applicaties nodig) en geeft mogelijk ook extra informatie qua mailopbouw (spamindex) aan de ontvangende kant.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

29/10/2018 22:28:12
Quote Anchor link
Ik zou gaan voor optie 2 van Thomas. Hier vindt je de bestanden. https://github.com/PHPMailer/PHPMailer en Als je composer gebruikt kun je het gewoon installeren met composer require phpmailer/phpmailer

Gebruik al jaren de smtp server van mijn internetprovider. Werkt als een trein.
 
Martijn Horst

Martijn Horst

29/10/2018 22:39:34
Quote Anchor link
Oke bedankt voor de hulp. Stel dat ik de 'website' nu online heb staan bij een webhoster + domeinnaam kan ik dan de problemen die ik nu heb ook online verwachten? Ik bedoel dat dan die php mail functie of die PHPmailer ook niet werkt? Helaas kan ik dit nog niet testen omdat ik nog geen hosting heb.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

29/10/2018 22:56:17
Quote Anchor link
Het is net andersom als dat je nu denkt. Met PHPMailer kun je zowel de interne PHP mail functie gebruiken als een SMTP server. Het is slechts even de instellingen aanpassen. Te meer omdat er steeds meer providers zijn die de interne PHP mail functie uitschakelen is het direct toepassen van een library als PHPMailer of Swiftmailer een goed idee.
 
- Ariën -
Beheerder

- Ariën -

30/10/2018 22:23:10
Quote Anchor link
Ik zie niet vaak dat providers mail() uitschakelen. En sowieso is dat een slecht punt van ze.
Ze moeten de afhandeling gewoon goed aanpakken.
 
Yoop Overmaat

Yoop Overmaat

01/11/2018 16:04:33
Quote Anchor link
Yoop Overmaat op 29/10/2018 21:57:30:
Ben van Velzen op 29/10/2018 21:33:35:
Waarom zou je poort 26 open zetten? Die poort wordt niet voor mail gebruikt. Maar zelfs dan nog, om mail te versturen hoef je zelf niets open te zetten. Afhankelijk van je ISP is 25 naar buiten gesloten though.


Poort 25 is standaard verzenden & poort 26 ontvangen van mail onder het smtp-protocol, als 25 geblokkeerd is heeft het geen nut om op poort 26 op een reactie van voorafgaande te wachten, toch?


Correct, ik was abuis.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.