PhpMailer overzicht
Ik heb een mailtje opgesteld vanuit mijn website om een overzichtje te versturen.
Dit overzicht bevat tabellen, en nu lijkt het er op dat deze tabellen telkens verkeerd worden weergegeven in de verschillende emailclients.
Nu weet ik dat het gebruik van tabellen ook verkeerd is, dus zou ik graag een oplossing zoeken die zonder tabellen werkt, maar hebben emailclients deze problemen ook met divs oid? En kan ik ook gewoon CSS meesturen?
Hoe zouden jullie dit soort overzichtjes versturen (zodat het dus ook netjes onder elkaar staat):
10:00...Team 1.........-........Team 2
11:00...Teampje 7....-......Teams 8
enz...
Alvast bedankt voor het meedenken!
Gewijzigd op 26/09/2014 21:20:22 door D B
Wie zegt dat tabellen voor een overzicht verkeerd zijn?
In de negentiger jaren zijn er hele webpagina's met tabellen in tabellen opgemaakt om een soort van pagina indeling te creëren. Dat is nu niet meer nodig omdat we de <div>'s hebben. Laten er nou nog aardig wat email clients zijn die nog van dezelfde tijd zijn. Tabellen is worden dus over het algemeen goed ondersteund door de emailprogramma's
Gewijzigd op 26/09/2014 22:43:43 door Frank Nietbelangrijk
Met tabellen krijg ik het precies zo voor elkaar als ik hebben wil.
Telkens als ik een tabel gebruik krijg ik geen nette output. Soms zet hij zelfs de halve html code zichtbaar bijvoorbeeld b/> terwijl daarna het dikgedrukte dan wel ophoudt ...
Kan het eraan liggen dat de regel html code achter elkaar staan, dat hij daar misschien moeite mee heeft?
Alvast bedankt voor het meedenken!
D B op 26/09/2014 23:07:36:
Soms zet hij zelfs de halve html code zichtbaar bijvoorbeeld b/> terwijl daarna het dikgedrukte dan wel ophoudt ...
Lijkt me eerder dat er dan iets fout zit in je mailbericht.
Hoe ziet de broncode er uit als je de mail binnenkrijgt?
Zonder code is het voor ons wat lastig om aan te geven waar het fout gaat/kan gaan.
D B op 26/09/2014 23:07:36:
Humz, dat is vreemd :)
Telkens als ik een tabel gebruik krijg ik geen nette output. Soms zet hij zelfs de halve html code zichtbaar bijvoorbeeld b/> terwijl daarna het dikgedrukte dan wel ophoudt ...
Telkens als ik een tabel gebruik krijg ik geen nette output. Soms zet hij zelfs de halve html code zichtbaar bijvoorbeeld b/> terwijl daarna het dikgedrukte dan wel ophoudt ...
Wedden voor een biertje dat je HTML dan niet correct is?
Hier wordt mijn mail gemaakt:
Code (php)
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
115
116
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
115
116
<?
$mail = new PHPMailer();
$mail->From = '.......';
$mail->FromName = '..........';
$mail->addAddress($scheidsrechtersmail);
$mail->addReplyTo('..........','.............');
$mail->isHTML(true);
$mail->Subject = 'Scheidsrechtersschema ZSC Junioren';
$mail->Body = '<html><head><title>Scheidsrechtersschema ZSC Junioren</title></head><body>';
$mail->Body .= "Hallo ". $scheidsrechtersvoornaam[$key]. ",". "<br><br>";
$mail->Body .= "Hierbij het Scheidsrechtersschema (Junioren) voor de komende periode:<br><br>";
$sql0= "
SELECT
DISTINCT w.datum,
DATE_FORMAT(w.datum, '%W %d %M %Y') as datum1
FROM
Wedstrijden AS w
LEFT JOIN
Teams AS t
ON
(w.team_1 = t.team)
WHERE
w.datum >= DATE_FORMAT(NOW(),'%Y-%m-%d')
AND
t.leeftijd='Junioren'
AND
(w.uitslag_t1 IS NULL OR w.uitslag_t1 = '')
ORDER BY
w.datum ASC
";
$res0=mysql_query($sql0) or die(mysql_error());
$kop = 0;
while ($row0=mysql_fetch_array($res0)) {
$daatum=$row0['datum'];
$daatum1=ucwords($row0['datum1']);
$mail->Body .= '<b>'. $daatum1. '</b>';
$mail->Body .= '<table>';
$query ="
SELECT
w.id,
DATE_FORMAT(w.datum, '%d-%m-%Y') as datum1,
TIME_FORMAT(w.tijd, '%H:%i') as tijd1,
w.team_1,
w.team_2,
s.naam,
s.veld,
s.kleedlokaal,
s.wedstrijdnr
FROM
Wedstrijden AS w
LEFT JOIN
Teams AS t
ON
(w.competitie = t.team)
LEFT JOIN
Scheidsrechter AS s
ON
(w.id = s.id)
WHERE
w.datum = '". $daatum. "'
AND
w.team_1 LIKE 'ZSC%'
AND
t.leeftijd = 'Junioren'
AND
(w.uitslag_t1 IS NULL OR w.uitslag_t1 = '')
GROUP BY
w.id
ORDER BY
t.volgorde,
w.tijd,
t.team
";
if ( $kop < 1 ) {
$mail->Body .= '<tr>';
$mail->Body .= '<td width="50">Tijd</td>';
$mail->Body .= '<td width="170">Thuis</td>';
$mail->Body .= '<td width="10" align="center">-</td>';
$mail->Body .= '<td width="170">Uit</td>';
$mail->Body .= '<td width="170">Scheidsrechter</td>';
$mail->Body .= '</tr>';
}
$kop = 1;
$result = mysql_query($query) or die(mysql_error());
while ($roow = mysql_fetch_array($result)){
if(substr($roow['team_1'],0,3) == 'ZSC') { $team_1 = "<b>". $roow['team_1']. "</b>"; } else { $team_1 = $roow['team_1']; }
if(substr($roow['team_2'],0,3) == 'ZSC') { $team_2 = "<b>". $roow['team_2']. "</b>"; } else { $team_2 = $roow['team_2']; }
$mail->Body .= '<tr>';
$mail->Body .= '<td width="50" align="left">'. $roow['tijd1']. '</td>';
$mail->Body .= '<td width="170" align="left">'. stripcslashes($team_1). '</td>';
$mail->Body .= '<td width="10" align="center">-</td>';
$mail->Body .= '<td width="170" align="left">'. stripcslashes($team_2). '</td>';
$mail->Body .= '<td width="170" align="left">'. $roow['naam']. '</td>';
$mail->Body .= '</tr>';
}
$mail->Body .= '</table>';
}
$mail->Body .= "<br>";
$mail->Body .= "Als je een keer niet kunt, graag zelf ruilen.<br><br>";
$mail->Body .= "Vriendelijke Groeten,<br><br>";
$mail->Body .= ".......<br>";
$mail->Body .= "Scheidsrechterscoördinator ZSC<br><br>";
$mail->Body .= "Dit is een automatisch gegenereerd bericht.";
$mail->Body .= "</body></html>";
if(!$mail->send()) {
$error .= $scheidsrechtersvoornaam[$key]. ' '. $scheidsrechtersmail. '<br>';
$error .= 'Mail niet verzonden.<br>';
$error .= 'Mail Fout: ' . $mail->ErrorInfo. '<br><br>';
}
else {
$error .= $scheidsrechtersvoornaam[$key]. ' '. $scheidsrechtersmail. '<br>';
$error .= 'Mail verzonden<br><br>';
}
?>
$mail = new PHPMailer();
$mail->From = '.......';
$mail->FromName = '..........';
$mail->addAddress($scheidsrechtersmail);
$mail->addReplyTo('..........','.............');
$mail->isHTML(true);
$mail->Subject = 'Scheidsrechtersschema ZSC Junioren';
$mail->Body = '<html><head><title>Scheidsrechtersschema ZSC Junioren</title></head><body>';
$mail->Body .= "Hallo ". $scheidsrechtersvoornaam[$key]. ",". "<br><br>";
$mail->Body .= "Hierbij het Scheidsrechtersschema (Junioren) voor de komende periode:<br><br>";
$sql0= "
SELECT
DISTINCT w.datum,
DATE_FORMAT(w.datum, '%W %d %M %Y') as datum1
FROM
Wedstrijden AS w
LEFT JOIN
Teams AS t
ON
(w.team_1 = t.team)
WHERE
w.datum >= DATE_FORMAT(NOW(),'%Y-%m-%d')
AND
t.leeftijd='Junioren'
AND
(w.uitslag_t1 IS NULL OR w.uitslag_t1 = '')
ORDER BY
w.datum ASC
";
$res0=mysql_query($sql0) or die(mysql_error());
$kop = 0;
while ($row0=mysql_fetch_array($res0)) {
$daatum=$row0['datum'];
$daatum1=ucwords($row0['datum1']);
$mail->Body .= '<b>'. $daatum1. '</b>';
$mail->Body .= '<table>';
$query ="
SELECT
w.id,
DATE_FORMAT(w.datum, '%d-%m-%Y') as datum1,
TIME_FORMAT(w.tijd, '%H:%i') as tijd1,
w.team_1,
w.team_2,
s.naam,
s.veld,
s.kleedlokaal,
s.wedstrijdnr
FROM
Wedstrijden AS w
LEFT JOIN
Teams AS t
ON
(w.competitie = t.team)
LEFT JOIN
Scheidsrechter AS s
ON
(w.id = s.id)
WHERE
w.datum = '". $daatum. "'
AND
w.team_1 LIKE 'ZSC%'
AND
t.leeftijd = 'Junioren'
AND
(w.uitslag_t1 IS NULL OR w.uitslag_t1 = '')
GROUP BY
w.id
ORDER BY
t.volgorde,
w.tijd,
t.team
";
if ( $kop < 1 ) {
$mail->Body .= '<tr>';
$mail->Body .= '<td width="50">Tijd</td>';
$mail->Body .= '<td width="170">Thuis</td>';
$mail->Body .= '<td width="10" align="center">-</td>';
$mail->Body .= '<td width="170">Uit</td>';
$mail->Body .= '<td width="170">Scheidsrechter</td>';
$mail->Body .= '</tr>';
}
$kop = 1;
$result = mysql_query($query) or die(mysql_error());
while ($roow = mysql_fetch_array($result)){
if(substr($roow['team_1'],0,3) == 'ZSC') { $team_1 = "<b>". $roow['team_1']. "</b>"; } else { $team_1 = $roow['team_1']; }
if(substr($roow['team_2'],0,3) == 'ZSC') { $team_2 = "<b>". $roow['team_2']. "</b>"; } else { $team_2 = $roow['team_2']; }
$mail->Body .= '<tr>';
$mail->Body .= '<td width="50" align="left">'. $roow['tijd1']. '</td>';
$mail->Body .= '<td width="170" align="left">'. stripcslashes($team_1). '</td>';
$mail->Body .= '<td width="10" align="center">-</td>';
$mail->Body .= '<td width="170" align="left">'. stripcslashes($team_2). '</td>';
$mail->Body .= '<td width="170" align="left">'. $roow['naam']. '</td>';
$mail->Body .= '</tr>';
}
$mail->Body .= '</table>';
}
$mail->Body .= "<br>";
$mail->Body .= "Als je een keer niet kunt, graag zelf ruilen.<br><br>";
$mail->Body .= "Vriendelijke Groeten,<br><br>";
$mail->Body .= ".......<br>";
$mail->Body .= "Scheidsrechterscoördinator ZSC<br><br>";
$mail->Body .= "Dit is een automatisch gegenereerd bericht.";
$mail->Body .= "</body></html>";
if(!$mail->send()) {
$error .= $scheidsrechtersvoornaam[$key]. ' '. $scheidsrechtersmail. '<br>';
$error .= 'Mail niet verzonden.<br>';
$error .= 'Mail Fout: ' . $mail->ErrorInfo. '<br><br>';
}
else {
$error .= $scheidsrechtersvoornaam[$key]. ' '. $scheidsrechtersmail. '<br>';
$error .= 'Mail verzonden<br><br>';
}
?>
En dit is de bron die ik in mijn mail zie:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<TR>
<TD width=50 align=left>12:30</TD>
<TD width=170 align=left><B>ZSC D2</B></TD>
<TD width=10 align=center>-</TD>
<TD width=170 align=left>Riethoven D2</TD><T align="left" width="40" d></TD>
<TD width=170 align=left>Hier staat een Naam</TD></TR>
<TD width=50 align=left>12:30</TD>
<TD width=170 align=left><B>ZSC D2</B></TD>
<TD width=10 align=center>-</TD>
<TD width=170 align=left>Riethoven D2</TD><T align="left" width="40" d></TD>
<TD width=170 align=left>Hier staat een Naam</TD></TR>
Zie je op de voorlaatste regel die TD klopt niet....
nergens terugkomen in jouw code hierboven.
Verder valt me op dat alle tr/td in jouw code met kleine letters worden geschreven en de waarden netjes met " In de bron van de mail is dat ook anders.
Ik weet niet of dit door PHP-mailer wordt gewijzigd.
Wat je zou kunnen proberen, om dingen uit te sluiten is om de variabelen tijdelijk te vervangen door vaste waarden. Dit om uit te sluiten dat die variabelen de oorzaak zijn van het probleem.
Ik zie het stukje Verder valt me op dat alle tr/td in jouw code met kleine letters worden geschreven en de waarden netjes met " In de bron van de mail is dat ook anders.
Ik weet niet of dit door PHP-mailer wordt gewijzigd.
Wat je zou kunnen proberen, om dingen uit te sluiten is om de variabelen tijdelijk te vervangen door vaste waarden. Dit om uit te sluiten dat die variabelen de oorzaak zijn van het probleem.