html mail sturen naar emails uit databank

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Andreas Anastasiades

Andreas Anastasiades

15/12/2011 15:37:20
Quote Anchor link
Hallo, ik ben nieuw in het wereldje van php en zit met een probleem.
Ik wil een mail verzenden na het invullen van een online formulier naar alle emailadressen in een bepaalde databank maar krijg geen resultaat, enkel een wit scherm...

De velden van het formulier zijn txttitel en txtinhoud, zoals in de code vermeld is.

Dit is mijn code

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
<?php
$to
= '[email protected]';
$subject = 'Nieuwsbrief';
// message
$message = "<html>".
"<head>"."<title>Nieuwsbrief</title>".
"</head>"."<body>".
    "<center>".
    "<img src='http://www.xxxxxxxxxx.be/images/logo.png' style='padding: 30px 0 20px 0;' />".
    "</center>".
        
    "<center>".
    "<img src='http://www.xxxxxxxxxx.be/images/line.png' style='padding-bottom: 20px;' />".
    "</center>".
        
    "<h1 style='margin:10px 15px 5px 15px;font-family:Lucida Grande, Verdana, Arial, sans-serif;font-size:20px;color:#666;text-shadow:1px 1px 1px #cacaca;padding-bottom:5px;border-bottom: dotted 1px;'>".
        "{$_POST['txttitel']}".
    "</h1>".
        
    "<p>".
    "{$_POST['txtinhoud']}".
    "</p>".
.
"</body>"."</html>";

//get email list

//open database connection

$webspace='xxxxxxxxxx';
$username = "xxxxxxxxxx";
$password = "xxxxxxxxxx";
$database = "xxxxxxxxxx";

//connect to database
$link=mysql_connect($webspace,$username,$password);
@
mysql_select_db($database) or die("<b>Unable to specified database</b>");

$query="SELECT fldemail FROM tblnieuwsbrief";
$result=mysql_query($query) or die('Error, query failed');
mysql_close($link);

$row=1;
$numrows=mysql_num_rows($result);
$bccfield="Bcc: ". mysql_result($result,0,"fldemail");
while($row<$numrows)
{

$email=mysql_result($result,$row,"fldemail");
$bccfield .= "," . $email; //seperate by comma
$row++;
}

$bccfield .= "\r\n";

// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= $bccfield;

// Mail it
mail($to, $subject, $message, $headers);
?>



Heb echt geen idee wat ik hiermee moet aanvangen

Bedankt alvast
 
PHP hulp

PHP hulp

27/11/2024 20:53:04
 
Lendl Verschoor

Lendl Verschoor

15/12/2011 16:08:44
Quote Anchor link
Run je het wel op een mail server? of op je lokale machine?
 
Andreas Anastasiades

Andreas Anastasiades

15/12/2011 17:09:15
Quote Anchor link
de webpagina waar het script op staat, staat op one.com hosting
 
- Ariën  -
Beheerder

- Ariën -

15/12/2011 17:12:20
Quote Anchor link
Zet eens bovenaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>
 
Andreas Anastasiades

Andreas Anastasiades

15/12/2011 17:17:30
Quote Anchor link
krijg nog steeds niets anders te zien dan enkel een witte pagina, zonder meer helaas
 
- Ariën  -
Beheerder

- Ariën -

15/12/2011 17:32:27
Quote Anchor link
Haal ook de @'jes voor de functies weg en zet hier en daar een paar echo's.
Gewijzigd op 15/12/2011 17:33:57 door - Ariën -
 
- SanThe -

- SanThe -

15/12/2011 17:58:06
Quote Anchor link
In het script wat hierboven staat zit geen enkele echo, dus daar zul je niks van op het scherm krijgen.
 
Andreas Anastasiades

Andreas Anastasiades

15/12/2011 18:25:02
Quote Anchor link
heb het @'je ook opgemerkt en weggedaan, 3 echos in gezet. Resultaat blijft een wit scherm, en SanThe, klopt idd wat je zegt, maar eronder staat nog een klein deel html dat ik niet heb gekopieerd, o.a. de tekst "Nieuwsbrief verzonden" maar dat krijg ik dus ook niet te zien
 
- Ariën  -
Beheerder

- Ariën -

15/12/2011 19:03:58
Quote Anchor link
Was het bij one.com dat je foutmeldingen niet zelf aan moest zetten in een control panel?
 
Andreas Anastasiades

Andreas Anastasiades

15/12/2011 19:24:35
Quote Anchor link
niet dat ik weet, ga er van uit van niet aangezien ik al meerdere foutmeldingen heb gezien in voorgaande pogingen met andere php scripts :D

Toevoeging op 15/12/2011 19:29:19:

blijft me echt een raadsel, zie zelf echt niets verkeerds

Toevoeging op 15/12/2011 19:42:55:

moest het handig zijn om te weten, vanuit dit formulier wordt gelinkt naar de php

<form name="formulier" action="send.php" method="POST">
 
- Ariën  -
Beheerder

- Ariën -

15/12/2011 19:54:43
Quote Anchor link
laat je code eens zien waar je echo's hebt toegevoegd?
 
- SanThe -

- SanThe -

15/12/2011 19:59:16
Quote Anchor link
Leeg scherm: Dan mist er waarschijnlijk ergens een . tussen 2 $vars of tussen 'tekst' en $var.

Of natuurlijk een punt teveel.
Regel 22: "</p>".
Tegel 23: ."</body>"."</html>";

Toevoeging op 15/12/2011 20:05:30:

Veel beter is dit:
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
<?php
$message
= '<html>
        <head><title>Nieuwsbrief</title>
        </head>
        <body>
            <center><img src="http://www.xxxxxxxxxx.be/images/logo.png" style="padding: 30px 0 20px 0;" />
            </center>
            <center><img src="http://www.xxxxxxxxxx.be/images/line.png" style="padding-bottom: 20px;" />
            </center>
            <h1 style="margin:10px 15px 5px 15px;font-family:Lucida Grande, Verdana, Arial, sans-serif;font-size:20px;color:#666;text-shadow:1px 1px 1px #cacaca;padding-bottom:5px;border-bottom: dotted 1px;">
            '
. $_POST['txttitel'] . '
            </h1>
            <p>'
. $_POST['txtinhoud'] . '</p>
            </body></html>'
;
?>


Nog beter is CSS gebruiken.
 
F Loogman

F Loogman

15/12/2011 22:35:12
Quote Anchor link
Test het script een zonder de BCC dingen, of stuur eens een gewoon mailtje met een script. Breid van daaruit je script uit. Geen beeld betekent wellicht een exceptie, die vang je volgens mij niet met error_reporting. Dus je kunt het ook proberen met een
try { } catch { } blok. In de catch kun je de fout dan tonen. (zie ook http://www.codeunit.co.za/2010/01/16/php-simple-try-catch-example/)
 
- Ariën  -
Beheerder

- Ariën -

15/12/2011 22:37:45
Quote Anchor link
Andreas Anastasiades op 15/12/2011 15:37:20:
Hallo, ik ben nieuw in het wereldje van php ...


F Loogman op 15/12/2011 22:35:12:
Dus je kunt het ook proberen met een
try { } catch { } blok.


Ik zou een beginner nog niet laten beginnen aan exceptions.
Gewijzigd op 15/12/2011 22:38:43 door - Ariën -
 
F Loogman

F Loogman

15/12/2011 23:00:02
Quote Anchor link
Het voorbeeld geeft goed aan hoe het moet. En hij kan altijd nog beginnen met de BCC en bijbehorende MySQL queries te verwijderen, om het eenvoudig te houden :-)
 
- SanThe -

- SanThe -

15/12/2011 23:04:34
Quote Anchor link
- SanThe - op 15/12/2011 19:59:16:
Of natuurlijk een punt teveel.
Regel 22: "</p>".
Tegel 23: ."</body>"."</html>";


Het komt door deze twee punten achter elkaar,
 
F Loogman

F Loogman

15/12/2011 23:21:37
Quote Anchor link
Da's inderdaad simpeler op te lossen. :-)
 
Andreas Anastasiades

Andreas Anastasiades

16/12/2011 10:28:06
Quote Anchor link
Bedankt SanThe, het was inderdaad dat ene puntje teveel! het script werkt nu perfect!
over een CSS gebruiken, daar had ik de commentaar gekregen dat dit mogelijk niet zou werken als het een externe stylesheet zou zijn omdat het gemaild wordt, dus heb ik alle stijlelementen inline geplaatst.

En F Loogman, de link over try en catch ga ik zeker bekijken, ziet er mij interessant uit. Dan kan ik mijn kennis van php een beetje verruimen :)

Bedankt!
 



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.