[PHP]email met html opmaak ?

Pagina: 1
Acties:
  • 261 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
Ik wil de inhoud van een formulier mailen met de tekst in html opmaak.
Het mailen van het formulier is geen probleem, het enige wat niet goed gaat is de html opmaak. De inhoud verschijnt gewoon als tekst met html codes, email prg ziet het dus als tekst en niet als mime/html bericht.

Het probleem zit in de MIME headers die worden volgens mij niet overgenomen door de mail server heb al gebrobeerd deze regels met \n ipv \r\n af te sluiten dit schijnt soms te helpen.

Scriptje getest onder windows, linux en hosting provider vuurwerk.nl maar nergens werkt het.

Zie ik nou iets over het hoofd ?? of ligt het toch aan de email server ?

Mijn ingekorte scriptje.
PHP:
1
<?$recipient = "mijnemailadres@provider.nl";$subject = "betreftform";$headers  = "MIME-Version: 1.0\r\n";$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";$mail_body = "<BR>bericht met html codes<BR>\n\n";mail($recipient, $subject, $mail_body, $header);?>

Heb google, php.net en nog wat sites al doorgespit maar kan geen goede oplossing vinden, ik doe precies wat daar staat maar zonder resultaat. :(

Acties:
  • 0 Henk 'm!

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 18-11-2022
werkt het in geen enkele email client?

ik heb soms dat in de ene client het perfect werkt en de andere niet,
en dat is dan meestal weer iets van outlook dat moeilijk doet.


probeer eens de volgende snippet:
code:
1
2
3
4
5
6
7
8
9
10
$boundary = "=====gilles." . md5(uniqid(time())) . "=====";
$headers .= "MIME-Version:1.0\r\n";
$headers .= "Content-Type: multipart/mixed; \r\n\tboundary=\"$boundary\"\r\n\r\n";
$str = "--" . $boundary . "\r\n";
$str .= "Content-Type: text/html;\r\n\tcharset=\"us-ascii\"\r\n";
$str .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$str .= "$body\r\n\r\n";
$str .= "\r\n--$boundary--\r\n";
$body = $str;
mail($to, $subject, $body, $headers);

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


Acties:
  • 0 Henk 'm!

  • PipoDeClown
  • Registratie: September 2000
  • Niet online

PipoDeClown

Izze Zimpell

je bedoelt dat de email client maar php code moet gaan parsen?

God weet alles, want hij is lid van de Mosad. To protect your freedom i will take that away from you. Mijn drankgebruik heeft ernstig te lijden onder mijn gezondheid.


Acties:
  • 0 Henk 'm!

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 18-11-2022
Op donderdag 18 juli 2002 20:47 schreef PipoDeClown het volgende:
je bedoelt dat de email client maar php code moet gaan parsen?
jij bent zeker de leukste thuis

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


Acties:
  • 0 Henk 'm!

Anoniem: 59722

Hoe ziet de header er uit als je hem in outlook binnen krijgt? (ff opslaan als eml)

Acties:
  • 0 Henk 'm!

  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
hey tnx dit script werkt wel!!


De header zag er zo uit:
Message-Id: <200207181819.g6IIJxGG080236@smtpzilla1.xs4all.nl>
Date: Thu, 18 Jul 2002 20:19:45 +0100
From: mijnemail@xs4all.nl
Subject: betreftform
To: mijnemail@xs4all.nl

Maar het scriptje van GiLuX doet het, dus daar ga ik verder mee aan de slag. :) :)

Acties:
  • 0 Henk 'm!

Anoniem: 59722

Op donderdag 18 juli 2002 21:40 schreef Thijs B het volgende:
hey tnx dit script werkt wel!!


De header zag er zo uit:
Message-Id: <200207181819.g6IIJxGG080236@smtpzilla1.xs4all.nl>
Date: Thu, 18 Jul 2002 20:19:45 +0100
From: mijnemail@xs4all.nl
Subject: betreftform
To: mijnemail@xs4all.nl

Maar het scriptje van GiLuX doet het, dus daar ga ik verder mee aan de slag. :) :)
Zit geen content-type in, daarom doet ie het niet. Maar goed, je hebt het als multipart wel aan de praat :)

Acties:
  • 0 Henk 'm!

  • Galoptic
  • Registratie: Februari 2001
  • Laatst online: 04-10-2024
Ik heb onderstaand stukje in sendmail.php die ik aanroep via een formuliertje.
code:
1
2
3
4
5
6
7
8
9
10
11
12
&lt;?
  $extra = &quot;From: &quot; . $_REQUEST[naam] . &quot;&lt;&quot; . $_REQUEST[email] . &quot;&gt;&quot; ;

  $bericht = $_REQUEST[content];

  $to   = &quot;mijnmail@provider.nl&quot;;
  $subject = &quot;mailtje van&quot;;

  mail ($to, $subject, $bericht, $extra);

  Header(&quot;Location: http://www..nl/index.htm&quot;);
?&gt;

Ik wil de content ($bericht dus) in een html-opmaak plaatsen en heb daarvoor in een volgende versie van sendmail.php al toegevoegd (en $headers in de mail() gezet):
code:
1
2
  $headers  = &quot;MIME-Version: 1.0\r\n&quot;;
  $headers .= &quot;Content-type: text/html; charset=iso-8859-1\r\n&quot;;

En dan de volgende stap is dus de html-layout erin te zetten. Dat zou zoiets als dit moeten worden:
code:
1
 $message = '&lt;DIV STYLE=&quot;color: #000000&quot;&gt;email&lt;/DIV&gt;' . $_REQUEST[content] . '&lt;/DIV&gt;' ;

Maar dit krijg ik niet werkende. Overzie ik het geheel niet? (Klaarblijkelijk :?)

[ Voor 0% gewijzigd door Galoptic op 19-08-2007 20:13 . Reden: url weg ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:38

Janoz

Moderator Devschuur®

!litemod

Vergeet niet de boundaries toe te voegen. Daarnaast is het gebruikelijk om in de mail ook de tekst in gewoon plain formaat toe te voegen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Anoniem: 2955

vreemd he als je $headers vult en vervolgens $header (zonder s) gebruikt in mail()

Acties:
  • 0 Henk 'm!

  • Galoptic
  • Registratie: Februari 2001
  • Laatst online: 04-10-2024
Op maandag 22 juli 2002 20:37 schreef Nokia het volgende:
vreemd he als je $headers vult en vervolgens $header (zonder s) gebruikt in mail()
Okay, dat van die $header & $headerS zal ik dan wel missen, maar goed, ik heb er nu dit van gemaakt. Toch werkt-ie niet...
<?
$extra = "From: " . $_REQUEST[naam] . "<" . $_REQUEST[email] . ">" ;

$bericht = $_REQUEST[content];

$to = "mijnmail@provider.nl";
$subject = "mailtje vannl";

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

$message = '<DIV STYLE="color: #000000">email</DIV>' . $_REQUEST[content] . '</DIV>' ;

mail ($to, $subject, $bericht, $message, $extra, $headers);

?>
toon volledige bericht
Boundaries: heb ik die niet gesloten dan?

[ Voor 0% gewijzigd door Galoptic op 19-08-2007 20:13 . Reden: url weg ]


Acties:
  • 0 Henk 'm!

Anoniem: 56017

Op donderdag 18 juli 2002 20:47 schreef PipoDeClown het volgende:
je bedoelt dat de email client maar php code moet gaan parsen?
Volgens mij snap je werkelijk niets van de principes van PHP. Ff voor de duidelijkheid:

Verkort: PHP kan HTML generen. Dit gebeurt al op de webserver. De mail-cliënt zal dus een mail ontvangen in HTML opmaak, maar in dit geval nimmer in PHP.

Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 18-04 09:02
html mail zenden:
indien je alleen een html bericht wilt verzenden zonder text alternative dan volstaat Content-Type:html/plain
Boundaries zijn niet aanwezig.

Indien je ook de text als plain text wilt verzenden dan is het Content-Type multipart/alternative
Indien er sprake is van multipart message dan krijgt het Content Type een extra property mee in de vorm van boundary ="boundary_string"
Properties worden gescheiden door ; je krijgt nu:
Content-type: multipart/alternative; boundary="boundary_string"

Nu de body van het bericht in geval van multipart alternative:

--boundary_string
Content-type: text/plain

text part

--boundary_string
Content-type: html/plain

html part

--boundary_string--

de laatste is de end boundary.

Belangrijk om te weten is dat boundary_strings voor afgegegaan worden door '--' en indien de end boundary gebruikt wordt er '--' achter aan geplakt wordt.

Hopelijk kan iemand hier wat mee :)
Voor ingewikkelde constructies verwijs ik naar de betreffende mime RFC docs op [url="http://www.imc.org"]http://www.imc.org[/url]

Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 18-04 09:02
Op maandag 22 juli 2002 19:54 schreef Galoptic het volgende:
En dan de volgende stap is dus de html-layout erin te zetten. Dat zou zoiets als dit moeten worden:
code:
1
 $message = '&lt;DIV STYLE=&quot;color: #000000&quot;&gt;email&lt;/DIV&gt;' . $_REQUEST[content] . '&lt;/DIV&gt;' ;

Maar dit krijg ik niet werkende. Overzie ik het geheel niet? (Klaarblijkelijk :?)
$message = '<html><body>'.$message.'</body></html>';

Acties:
  • 0 Henk 'm!

  • Galoptic
  • Registratie: Februari 2001
  • Laatst online: 04-10-2024
$message = 'html onzin' . $_REQUEST[blaat] . 'lalala html enzo';

^^^^^ werkte netjes... leuk, dat php ;)

Acties:
  • 0 Henk 'm!

  • Grum
  • Registratie: Juni 2001
  • Niet online
Lees me sig aub ff over et quoten van named-arrays :)

Acties:
  • 0 Henk 'm!

Anoniem: 12517

Er bestaat een mooie PHP class waarmee je gemakkelijk HTML mailtjes kan versturen, maar ook mailtjes met attachments, en HTML mailtjes met embedded images. Prima class en makkelijk te gebruiken. Kijk even op:

[url="http://www.phpguru.org/mime.mail.html"]http://www.phpguru.org/mime.mail.html[/url]

succes.
Pagina: 1