[PHP] opmaak verstuurde e-mail in html

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • loodgieter
  • Registratie: Juni 2002
  • Laatst online: 11-04 16:19

loodgieter

Mars Vs. zie hieronder :)

Topicstarter
Ben al een tijdje bezig met het maken van een e-mail formulier. Mijn PHP kennis is niet groot kom een aardig eind maar nu even niet meer. :)

Ik heb al gezocht maar kon geen concreet antwoord vinden en bijv : [PHP]email met html opmaak ? gaf geen goed antwoord op mijn vraag.

De mail die verstuurd word via PHP komt er als platte tekst uit zonder een opmaak die ik er aan heb gegeven? ik heb al gezocht en dingen geprobeerd zoals jullie hieronder kunnen zien maar de mail blijft standaard in Times New Roman.

Bijvoorbeeld bij lijn 11 daar heb ik een CSS ingevuld zoals hieronder maar deze word niet weergegeven?
PHP:
code:
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
<?
if ($_POST[submit]) {

$tomail = "MIJNNAAM@EENDOMEIN.nl";"\r\n";
$frommail = $_POST[emailadres];"\r\n";
$fromname = $_POST[voornaam]." ".$_POST[achternaam];;
$message = '
<br>
<br>
<br>
<a class="formulier">voornaam:'.$_POST[voornaam].'</a>
<br>
achternaam: '.$_POST[achternaam].'
<br>
telefoonnummer: '.$_POST[telefoonnummer].'
<br>
plaats+postcode: '.$_POST[plaats].'
<br>
emailadres: '.$_POST[emailadres].'
<br>
onderwerp: '.$_POST[onderwerp].'
<br>
<br>
Bericht: <br>'.nl2br($_POST[vragen]).'
<br>
<br>
<br>
<br>
<br>
<br>
Bericht is verstuurd via IP-Adres: '.$_SERVER['REMOTE_ADDR'].'
';

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$frommail."\r\n";
$headers .= $fromname. "\r\n";
"\r\n";

mail($tomail, 'informatie', $message, $headers);
}
?>

CSS
code:
1
2
3
4
5
6
7
8
9
10
11
12
style type="text/css">
<!--
.formulier {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #993300;
    font-weight: bold;
    line-height: 22px;
    letter-spacing: 0.2em;
}
-->
</style>


Doe ik iets fout of kan dit niet wat ik wil?

Acties:
  • 0 Henk 'm!

  • WesleyB
  • Registratie: Juni 2007
  • Laatst online: 19-09 20:56
Mm, voor zover ik kan zien laad je de css niet

Acties:
  • 0 Henk 'm!

  • Gurbe de n00b
  • Registratie: Juni 2003
  • Laatst online: 08-02-2024
Waar includeer je de style dan in de E-Mail ?

Portfolio


Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 17:19
Je commentarieert je CSS regels uit. :P

En met Gurbe, je gebruikt in-line CSS, maar die hoor je dan dus mee te sturen met de e-mail, in de <head>- sectie van de mail.

[ Voor 62% gewijzigd door Jaap-Jan op 22-07-2008 23:50 . Reden: <head> niet <header> ]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Gurbe de n00b schreef op dinsdag 22 juli 2008 @ 23:46:
Waar includeer je de style dan in de E-Mail ?
Jaap-Jan schreef op dinsdag 22 juli 2008 @ 23:47:
Je commentarieert je CSS regels uit. :P
^^ Dat, én zonder html-, head- en body tags gaat het (afaik) in de meeste mailclients sowieso mis.

[ Voor 22% gewijzigd door RobIII op 22-07-2008 23:48 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 17-09 15:48
Als aanvulling op wat de mensen hierboven al zeggen. Mijn ervaring is dat e-mail clients echt overgevoelig zijn voor niet helemaal correcte HTML en allemaal anders reageren op CSS (nog erger dan de browsers..), omdat je soms met de meest vage render engines te maken krijgt.

Volgens mij ben je nu iets vrij simpels aan het mailen, dus waarschijnlijk gaat het je nu wel lukken als je je HTML een beetje netter maakt en je CSS niet meer uit commentarieert. ;) Alleen denk bij het maken van complexere mails die naar allerlei mensen gaan ook om de verschillende clients en een goede fallback. Scheelt een hoop frustratie bij zowel jou als de ontvangende mensen. :)

[ Voor 8% gewijzigd door Mac_Cain13 op 23-07-2008 00:02 ]


Acties:
  • 0 Henk 'm!

Verwijderd

*Stemt mee met Jaap-jan. Je moet het wel meesturen met je mailtje tussen de <head> tags.

Acties:
  • 0 Henk 'm!

  • loodgieter
  • Registratie: Juni 2002
  • Laatst online: 11-04 16:19

loodgieter

Mars Vs. zie hieronder :)

Topicstarter
Ok bedankt voor de tips ik ga het proberen. kom hier nog op terug

Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
en nog even ter aanvulling in het algemeen: Quote je named variabelen!

Dus $_POST["emailadres"] ipv $_POST[emailadres] :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-09 13:13
En euh, let even op header-injection en mogelijke cross-site-scripting.

Header-injection: http://www.google.nl/sear...official&client=firefox-a

XSS: http://www.google.nl/sear...xss+php&btnG=Zoeken&meta=

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

RobIII schreef op dinsdag 22 juli 2008 @ 23:48:
[...]


[...]


^^ Dat, én zonder html-, head- en body tags gaat het (afaik) in de meeste mailclients sowieso mis.
offtopic:
oeh :P

Erger: er zijn clients die strippen alles tot en met (!) de body tag. Alles wat erboven staat word genegeerd. Een oplossing kan zijn om de CSS in je body op te nemen en HTML commentaar tags te gebruiken zoals de TS nu doet zodat oudere HTML clients de CSS totaal negeren (want anders zie je die in je body terug). Aangezien de CSS commentaar tags anders zijn dan de HTML commentaar tags werkt dat prima ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Dit zou voldoende moeten zijn tegen header-injection:
PHP:
1
2
3
4
5
6
7
8
9
10
$from = $_POST['emailadres'];
if (eregi("\r",$from) || eregi("\n",$from) || 
    eregi("0x0D",$from) || eregi("%0D",$from) || 
    eregi("0x0A",$from) || eregi("%0A",$from))
{
    // de waarde $from is onveilig, weg met deze bezoeker
    header('Location: http://www.google.nl/');
    exit;
}
// $from is OK :)


Verder kun je ook gebruik maken van bijvoorbeeld PHPMailer of Zend_Mail voor dit soort dingen. Dat zijn standaard klassen waarin heel veel zaken al goed geregeld worden voor je.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Het verbaast me dat er onduidelijk gedaan wordt over html-mails. Dit zijn enkele korte regels:

- geen html, head, body gebruiken... begin bij <table>
- zo oldschool mogelijk als je de beste compabiliteit wil (divs worden slecht ondersteund)
- inline styles gebruiken <span style="font-size:15px;color:#333333">kop</span>

Verder eens met HuHu: het mailen overlaten aan phpmailer of Zend_Mail

[ Voor 10% gewijzigd door Cartman! op 23-07-2008 08:57 ]

Pagina: 1