mail() doet het niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jerry php

Jerry php

16/10/2012 14:07:58
Quote Anchor link
Mijn mail() functie doet het niet, ik krijg deze error:
Warning: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp\www\bobby\index.php on line 186

dit is mijn code, onder de laatst '}' komt de else {} met het formulier.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
        if(isset($_POST['Verzenden']))
        {

            $show_form    = "1";
            
            if(empty($_POST['geslacht'])){
                echo "- Er is geen geslacht gekozen<br>";
                $show_form    = "0";
            }

            if(empty($_POST['voornaam'])){
                echo "- Er is geen voornaam ingevuld<br>";
                $show_form    = "0";
            }

            if(empty($_POST['achternaam'])){
                echo "- Er is geen achternaam ingevuld<br>";
                $show_form    = "0";
            }

            if(empty($_POST['email'])){
                echo "- Er is geen email adres ingevuld<br>";
                $show_form    = "0";
            }

            if(empty($_POST['informatie'])){
                echo "- Er is geen informatie keuze ingevuld<br>";
                $show_form    = "0";
            }

            
            if($show_form != "0")
            {

                //Eigen gegevens
                $recipient = "[email protected]"; //Email waar de mail naar toe gaat
                $subject = "Contact via website - Onderwerp: ".$_POST['informatie']; //Onderwerp
                
                //Verzender gegevens (niet aanpassen)

                if(isset($_POST['bedrijf'])){
                    $bedrijf = $_POST['bedrijf'];
                }
else{
                    $bedrijf = "-";
                }

                if(isset($_POST['straat'])){
                    $straat = $_POST['straat'];
                }
else{
                    $straat = "-";
                }

                if(isset($_POST['huisnummer'])){
                    $huisnummer = $_POST['huisnummer'];
                }
else{
                    $huisnummer = "-";
                }

                if(isset($_POST['postcode'])){
                    $postcode = $_POST['postcode'];
                }
else{
                    $postcode = "-";
                }

                if(isset($_POST['woonplaats'])){
                    $woonplaats = $_POST['woonplaats'];
                }
else{
                    $woonplaats = "-";
                }

                if(isset($_POST['telefoonnummer'])){
                    $telefoonnummer = $_POST['telefoonnummer'];
                }
else{
                    $telefoonnummer = "-";
                }

                if(isset($_POST['mobiel'])){
                    $mobiel = $_POST['mobiel'];
                }
else{
                    $mobiel = "-";
                }

                if(isset($_POST['bericht'])){
                    $bericht = nl2br($_POST['bericht']);
                }
else{
                    $bericht = "Geen bericht ingevuld.";
                }



                                            
        //Email gegevens (niet aanpassen)
        $header = "From: ".$_POST['voornaam']." <".$_POST['email'].">\r\n";
        $header .= 'MIME-Version: 1.0' . "\r\n";
        $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $header .= 'Bcc: [email protected]' . "\r\n";
        
        //Email tekst
        $mail_text = "Deze email is verzonden vanaf: <i>".$_SERVER['PHP_SELF']."</i> vanaf IP adres: <i>".$_SERVER['REMOTE_ADDR']."</i><br><br><br>        
        <strong>Datum:</strong> "
.date("d-m-Y")."<br>
        <strong>Tijd:</strong> "
.date("H:i:s")."<br>
        <strong>Time:</strong> "
.time()."<br><br>
        <strong>Geslacht:</strong> "
.$_POST['geslacht']."<br>
        <strong>Naam:</strong> "
.$_POST['voornaam']." ".$_POST['achternaam']."<br>
        <strong>Bedrijfsnaam:</strong> "
.$bedrijf."<br><br>
        <strong>Straat:</strong> "
.$straat." - ".$huisnummer."<br>
        <strong>Postcode:</strong> "
.$postcode."<br>
        <strong>Plaats:</strong> "
.$woonplaats."<br>
        <strong>Telefoon:</strong> "
.$telefoonnummer."<br>
        <strong>Email:</strong> "
.$_POST['email']."<br>
        <strong>Informatie:</strong> "
.$_POST['informatie']."<br>
        <hr>
        <strong>Bericht: </strong> "
.$bericht."<br>
        <hr><br>
        ------------------------------------------------------------------<br>
        <i>Deze email is vertrouwlijk en mag alleen door medewerkers van Design Studio Bob gelezen worden, indien u deze email toch ontvangt verzoeken wij u deze door te sturen aan: "
.$recipient."</i>";

        if(mail($recipient, $subject, $mail_text, $header))
        {

            echo "Bedankt voor uw mail, wij nemen zo spoedig mogelijk contact met je op.";
        }

        else
        {
            echo "De email kon niet verzonden worden, probeert u het later nog eens!";
        }

        echo "</div>";
    }
}
[
/code]
Gewijzigd op 16/10/2012 14:26:23 door Jerry php
 
PHP hulp

PHP hulp

19/04/2024 04:37:31
 
Willem vp

Willem vp

16/10/2012 14:17:19
Quote Anchor link
Wat voor server-platform heb je? Windows of Unix?
 
Jerry php

Jerry php

16/10/2012 14:17:28
Quote Anchor link
Windows.
 
Willem vp

Willem vp

16/10/2012 14:18:46
Quote Anchor link
Heb je dan ook een lokale mail-server die op de SMTP-poort luistert?
 
Jerry php

Jerry php

16/10/2012 14:19:59
Quote Anchor link
Hmm, daar heb ik eigenlijk geen idee van. Dit is niet mijn script, maar ik moest dit script even debuggen.
 
Willem vp

Willem vp

16/10/2012 14:27:22
Quote Anchor link
Ik gok zo dat dit het probleem is. De mail()-functie moet je mailtje op de een of andere manier op het net zien te krijgen. Op een Unix-systeem wordt daar het externe commando 'mail' voor aangeroepen, maar op een Windows-systeem connect hij zelf naar poort 25 om de mail te versturen. Er moet dan natuurlijk wel een server aan die poort hangen die de mail in ontvangst kan nemen. ;-)

Volgens de PHP-manual zou het ook mogelijk moeten zijn om de SMTP-poort op een remote systeem te gebruiken, maar ik vermoed dat je dan ergens een setting zal moeten wijzigen. Omdat ik zelf geen Windows-servers met PHP beheer is dat voor mij in ieder geval geen parate kennis.
 
Jerry php

Jerry php

16/10/2012 14:29:08
Quote Anchor link
Ik test hem nu wel op mijn localhost van mijn computer, dus gewoon via WAMP. Kan dat ook het probleem zijn dan?
 
Willem vp

Willem vp

16/10/2012 14:31:52
Quote Anchor link
Jep. Maar je zou eens kunnen proberen de volgende regels toe te voegen aan je php.ini:

[mail function]
SMTP = mailserver.provider.net
smtp_port = 25

Uiteraard moet je de naam "mailserver.provider.net" wijzigen in de mailserver van je eigen provider. Dit werkt overigens alleen als je niet hoeft te authenticeren bij je provider (dus geen username/wachtwoord nodig hebt om mail te versturen).
Gewijzigd op 16/10/2012 14:34:10 door Willem vp
 
- Ariën  -
Beheerder

- Ariën -

16/10/2012 14:38:18
Quote Anchor link
Vergeet niet Apache na de wijzing van Willem even te herstarten. Mocht je wel moeten authenticeren voor de SMTP, dan raad ik aan om eens te kijken naar phpMailer.
Gewijzigd op 16/10/2012 14:38:44 door - Ariën -
 
Jerry php

Jerry php

16/10/2012 14:44:13
Quote Anchor link
Ik heb het even anders opgelost, ik ben op de bestaande server van de klant gaan werken, dat is natuurlijk makkelijker aangezien hij het daar al op deed. Toch bedankt allebei voor de hulp
 



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.