[PHP] Mail HTML

Pagina: 1
Acties:
  • 119 views sinds 30-01-2008

  • Eskimootje
  • Registratie: Maart 2002
  • Nu online
Ik was aan het proberen om via php een mail te versturen die bestond uit HTML ivm met de opmaak van de mail. Maar het wil slechts gedeeltelijk lukken. In Outlook Express pakt hij hem namelijk wel goed maar in Outlook zelf lukt het niet echt, je krijgt dan gewoon de source of een gedeelte van de source te zien. Ik heb al gekeken naar de voorbeelden op php.net en hier op tweakers. Maar ik kon er nix anders van maken als wat ik nu heb:

De headers die ik verstuur:
code:
1
2
3
4
5
6
7
From: "Eskimootje" <mail@mail.nl>
Reply-To: <mail@mail.nl>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="--=_NextPart_000_00A9_01C3376F.DA00AA00"
X-Sender: "Eskimootje" <mail@mail.nl>
X-Priority: 3
X-Mailer: PHP / 4.2.1

En het bericht zelf:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
This is a multi-part message in MIME format.
----=_NextPart_000_00A9_01C3376F.DA00AA00
Content-Type: text/html charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="Eskimootje" name=GENERATOR>

[html source]

----=_NextPart_000_00A9_01C3376F.DA00AA00_=----


Is er mss iemand die toevallig weet waar het fout gaat?

[ Voor 20% gewijzigd door Eskimootje op 21-06-2003 14:55 ]


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Wat lukt er niet? Wordt 'ie niet opgehaald, niet getoond, niet goed getoond?

Localhost, sweet localhost


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Geen idee wat je allemaal aan het doen bent.. content-type header toevoegen is in principe het enige dat je nodig hebt voor een html meel:

Content-type: text/html; charset=iso-8859-1\r\n

kun je gewoon aan je php mail() functie als extra header meegeven ;) En klaar is Kees.

[ Voor 5% gewijzigd door Bosmonster op 21-06-2003 17:08 ]


  • Eskimootje
  • Registratie: Maart 2002
  • Nu online
Ja ik wou graag ook een text meesturen als degene geen html mail kan ontvangen.

En zoals ik al zei: "Outlook zelf lukt het niet echt, je krijgt dan gewoon de source of een gedeelte van de source te zien. " Dus niet de html.

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Eskimootje schreef op 21 June 2003 @ 17:10:
Ja ik wou graag ook een text meesturen als degene geen html mail kan ontvangen.

En zoals ik al zei: "Outlook zelf lukt het niet echt, je krijgt dan gewoon de source of een gedeelte van de source te zien. " Dus niet de html.
Sorry, daar had ik overheen gelezen.
Wat voor lineendings gebruik je? Ik kan me herinneren dat ik daarmee nogal wat problemen heb gehad. Je moet niet \n gebruiken maar \r\n. OE corrigeert dit automagisch, maar bijvoorbeeld pegasus niet. Het is best mogelijk dat MSO dat ook niet corrigeert.

Localhost, sweet localhost


  • Eskimootje
  • Registratie: Maart 2002
  • Nu online
kvdveer: dat zou het wel eens kunnen zijn ik ga f kijken

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 12:32

BierPul

2 koffie graag

Welke mail component wordt gebruikt om te mailen :?

Bij Sendmail zijn de lineedndings bijvoorbeeld weer anders dan bij bijv een Qmail, dat heeft mij ook veel gezeik gekost.

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
$text = "Dear Sir, Maddam,\n Your email client does not support HTML.";
$html = "<html><body><table bgcolor=\"#cccccc\"><tr><td>HTML</td></tr></table></body></html>";
$email = "mijn@emailadres.nl";
$afzender = "info@bla.com";
$afzendernaam = "Bla.com";
$subject = "Bla bla subject";
$boundary = "Dit is de Boundary van de mail 01234";

$headers = "From: ".$afzendernaam." <".$afzender.">\n"; 
$headers .= "Subject: ".$subject."\n"; 
$headers .= "MIME-Version: 1.0\n"; 
$headers .= "Content-Type: multipart/alternative;\n"; 
$headers .= "\tboundary=\"".$boundary."\"\n"; 
$headers .= "Content-Transfer-Encoding: 7bit\n"; 
$message = "--".$boundary."\n"; 
$message .= "Content-Type: text/plain; charset=us-ascii\n"; 
$message .= "Content-Transfer-Encoding: 7bit\n"; 
$message .= "\n"; 
$message .= $text."\n"; 
$message .= "\n"; 
$message .= "--".$boundary."\n"; 
$message .= "Content-Type: text/html; charset=us-ascii\n"; 
$message .= "Content-Transfer-Encoding: 7bit\n"; 
$message .= "\n"; 
$message .= $html."\n"; 
$message .= "\n"; 
$message .= "--".$boundary."--"; 
mail($email, $subject, $message, $headers);


Met deze code mail ik direct uit Sendmail (wat waarschijnlijk ook jouw geval zou zijn.

Gaat prima :) maar MIME blijft een pain in the ass :(

[ Voor 33% gewijzigd door BierPul op 21-06-2003 19:44 ]

Ja man


Verwijderd

Deze gebruik ik altijd, lekker makkelijk en werkt goed
PHP:
1
2
3
4
5
6
7
8
9
10
11
<? 
if($action == "verstuurd") {
    if ($ccText != "") $ccText="cc: $ccText <$ccText>\n";
    if ($bccText != "") $bccText="Bcc: $bccText <$bccText>\n";
    if ($mailformat == "Text") mail($aan_email, $onderwerp, $body,     "To: $aan_email <$aan_email>\n" .     "From: $van_email <$van_email>\n" .$ccText.$bccText.   "X-Mailer: PHP 4.x");
    if ($mailformat == "Html") mail($aan_email, $onderwerp, $body,     "To: $aan_email <$aan_email>\n" .     "From: $van_email <$van_email>\n" .$ccText.$bccText.     "MIME-Version: 1.0\n" .     "Content-type: text/html; charset=iso-8859-1");
echo "Uw email is verzonden.<br>";

}

?>

en als formulier gebruik ik
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
<form action="index.php" method="post" enctype="multipart/form-data">
  <table width="636" border="0">
  <tr>
    <td width="91">Aan:</td>
    <td width="535"><input type="text" name="aan_email"></td>
  </tr>
  <tr>
    <td>Van:</td>
    <td><input type="text" name="van_email"></td>
  </tr>
  <tr>
    <td>Onderwerp:</td>
    <td><input name="onderwerp" type="text" size="40"></td>
  </tr>
  <tr>
    <td>Bericht:</td>
    <td><textarea name="body" cols="50" rows="8"></textarea></td>
  </tr>
  <tr>
    <td>
    <input type="hidden" name="action" value="verstuurd">
    <input type="hidden" name="mailformat" value="Html">
    <input type="submit" name="Submit" value="Submit">
    </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>


Succes B)

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 23-04 13:07
mime headers moet je eindigen met een dubble linefeed.
Jouw voorbeeld bevat dat niet => er zit geen witregel tussen de mime header en de bijbehorende html text.

Wanneer je trouwens ook text wilt verzenden dan moet je multipart/alternative in je rfc822 header gebruiken.

Je laatste boundary eindig je met ----. Boundaries eindig je met --.

  • Reignman
  • Registratie: Februari 2001
  • Laatst online: 26-11-2021
Ik weet dat het een oud topic is... maar het is het perfecte topic voor mijn probleem...

heb de code van PcGeek gebruikt:

code:
1
if ($mailformat == "Html") mail($aan_email, $onderwerp, $body,     "To: $aan_email <$aan_email>\n" .     "From: $van_email <$van_email>\n" .$ccText.$bccText.     "MIME-Version: 1.0\n" .     "Content-type: text/html; charset=iso-8859-1");

maar wat ik me afvroeg is het volgende..

dit verstuurd de mail neem ik aan...
code:
1
mail($aan_email, $onderwerp, $body,


maar wat doet onderstaand gedeelte precies??
code:
1
"To: $aan_email <$aan_email>\n" .     "From: $van_email <$van_email>\n" .$ccText.$bccText.     "MIME-Version: 1.0\n" .     "Content-type: text/html
snap dat het wat strings en variabelen aan elkaar plakt.. maar wil graag de precieze functie ervan weten...


2de vraag is:

hoe kan ik in dit format de prioriteit erbij zetten..??

[ Voor 13% gewijzigd door Reignman op 25-10-2004 15:58 ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Reignman schreef op 25 oktober 2004 @ 15:52:
maar wat doet onderstaand gedeelte precies??
in de manual van mail() staat alles uitgelegd :)

[ Voor 57% gewijzigd door Erkens op 25-10-2004 15:59 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:21

gorgi_19

Kruimeltjes zijn weer op :9

Zie Erkens :) Daarvoor had je zo een oud topic niet hoeven te kicken :) Dat kan alleen maar verwarring opleveren, aangezien sommigen dan gaan reageren op eerdere postings :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.