[PHP-mail] Plaatjes in mail meesturen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 15-08 13:07
Ik wil een link in een mailtje meesturen die dan later door de gebruiker gedownload kan worden. Nu word alle data netjes verzonden. Het enigste probleem is dat de plaatjes niet worden gedownload.

De plaatjes zitten in een stukje html.

De code van verzenden ziet er als volgt uit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function mailen($message,$i)
{
    $Blagegevens = Blaat();
    $Algemeen = Algemene_Informatie();
    $Subject = Onderwerp($i);

    /* recipients */
//    $to  = "$Blagegevens[0] <$Blagegevens[11]>\r\n";
    $to  = "*****@***.***";

    /* To send HTML mail, you can set the Content-type header. */
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    //$headers .= "Content-Type: multipart/mixed\r\n";

      /* and now mail it */
    mail($to, $Subject, $message, $headers);
}


Wat is er fout in dit bericht?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

html-mail is tricky, zeker als je plaatjes wilt meesturen. Je kan plaatjes natuurlijk linken vanaf een extern adres, maar je kan ze ook meesturen. Voor het laatste moet je echter verschillende content-types en boundaries meesturen, en niet vergeten de inhoud daarvan te base-encoden en eventueel te splitten op bv 80 karakters. Lees hiervoor de RFC's goed door.
Vergeet niet een text-only versie mee te sturen voor degenen die html-mail uit hebben staan.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Ik mail gewoon altijd een plaatje naar mezelf en bekijk de broncode en neem dat over :)

Acties:
  • 0 Henk 'm!

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 15-08 13:07
Ik bedoelde in mijn eerste mail al te zeggen dat ik het wilde linken, alleen geeft mijn oulook nog niet aan dat de plaatjes gedownloadn moeten worden of, dat er uberhaupt plaatjes in zitten, alleen als ik de source ga bekijken kan ik de image tags zien.

Edit: Ik wil dus meteen zeggen dat ik ze niet bij de message erbij wil sturen.

[ Voor 14% gewijzigd door BSeB op 03-07-2004 23:59 ]


Acties:
  • 0 Henk 'm!

Verwijderd

als je de image-tags ziet in de source, dan doet ie et toch? :?

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
BSeB schreef op 03 juli 2004 @ 23:58:
Ik bedoelde in mijn eerste mail al te zeggen dat ik het wilde linken, alleen geeft mijn oulook nog niet aan dat de plaatjes gedownloadn moeten worden of, dat er uberhaupt plaatjes in zitten, alleen als ik de source ga bekijken kan ik de image tags zien.

Edit: Ik wil dus meteen zeggen dat ik ze niet bij de message erbij wil sturen.
Níet in het bericht zelf? Dus gewoon [img]"http://domein.tld/image.jpg[/img]?
Dan ligt het eerder aan de client, dat hij geen plaatjes laat zien..

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Wat zie je dan als je de source van het bericht bekijkt? Staat daar wel precies de HTML die je gemailt hebt?


Je headers van de mail kloppen iig, want ik gebruik in mijn script dezelfde en die werkt gewoon goed:
PHP:
1
2
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

[ Voor 56% gewijzigd door Room42 op 04-07-2004 00:23 . Reden: ff de headers geplaatst ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
Het is onveilig om externe plaatjes in html mail default te laten zien. Ik ben een beetje verbaast dat outlook dat tegenwoordig ook weet. Waarschijnlijk ligt het dus aan de beveiliging van outlook.

Het is beter om je plaatje te embedden in je mail via een multipart/related mime structuur (type=text/html) en via cid links vanuit je html mail naar het Content-ID van het gerelateerde mime onderdeel te linken.

En vergeet niet om via een multipart/alternative structuur een text/plain versie aan je mailtje te hangen.

Acties:
  • 0 Henk 'm!

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 15-08 13:07
Dit is de HTML die ik in ANDERE mails aantref:

background="http://www.vssd.nl/nieuwsbrieven/layout/zijkant.gif"

Wat ik heb is:

background='http://www.vssd.nl/nieuwsbrieven/layout/zijkant.gif'

Misschien dat dit het verschil maakt, maar ik weet niet hoe ik in PHP een "" kan laten echoen, aangezien de opdracht echo vaak begint met echo "blabalba";

Acties:
  • 0 Henk 'm!

  • sjoerdb2
  • Registratie: Juli 2001
  • Laatst online: 09-05 09:52
" kun je weergeven met:

PHP:
1
2
3
<?
echo "background=\"http://www.vssd.nl/nieuwsbrieven/layout/zijkant.gif\"";
?>

[ Voor 98% gewijzigd door sjoerdb2 op 04-07-2004 08:27 ]


Acties:
  • 0 Henk 'm!

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 15-08 13:07
En ook dat hielp niet. Ik zal vanavond mijn code die ik als HTML mee stuur is posten. Want nu heb ik geen id meer.

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
<HTML>
<HEAD>
<TITLE>Mail Test</TITLE>
<STYLE type=text/css>
<!--
.boven {
    background-image: url(../images/Mail/Mail-formaat_05.gif);
    background-repeat: repeat-x;
}
.linksboven {
    background-image: url(../images/Mail/Mail-formaat_03.gif);
}
.links {
    background-image: url(../images/Mail/Mail-formaat_12.gif);
    background-repeat: repeat-y;
}
.linksonder {
    background-image: url(../images/Mail/Mail-formaat_16.gif);
    background-repeat: no-repeat;
}
.rechtsonder {
    background-image: url(../images/Mail/Mail-formaat_20.gif);
    background-repeat: no-repeat;
}
.rechts {
    background-image: url(../images/Mail/Mail-formaat_14.gif);
    background-repeat: repeat-y;
}
.rechtsboven {
    background-image: url(../images/Mail/Mail-formaat_07.gif);
    background-repeat: no-repeat;
}
.onder {
    background-image: url(../images/Mail/Mail-formaat_18.gif);
    background-repeat: repeat-x;
}
.KOP-1 {
    font-size: 60px;
    font-family: "Times New Roman";
}
.KOP-2 {
    font-size: 40px;
    font-family: "Times New Roman";
}
.style3 {font-size: 60px; font-family: "Times New Roman"; color: #fefcc9; }
.style4 {font-size: 40px; font-family: "Times New Roman"; color: #fefcc9; }
-->
</STYLE>
</HEAD>
<BODY> 
<TABLE border=0 align=center cellSpacing=0 background="../images/Mail/backgroundempty.gif" id=layout> 
  <TR bgColor=#A09B7D> 
    <TD width=24 height=24>&nbsp;</TD> 
    <TD width=6>&nbsp;</TD> 
    <TD width=115>&nbsp;</TD> 
    <TD width=475 bgcolor="#A09B7D">&nbsp;</TD> 
    <TD width=10>&nbsp;</TD> 
  </TR> 
  <TR> 
    <TD bgColor=#A09B7D height=24>&nbsp;</TD> 
    <td class="linksboven">&nbsp;</td> 
    <TD class="boven">&nbsp;</TD> 
    <td class="boven">&nbsp;</td> 
    <TD bgcolor="#A09B7D" class="rechtsboven">&nbsp;</TD> 
  </TR> 
  <TR> 
    <TD height="85" bgColor=#A09B7D>&nbsp;</TD> 
    <TD class=links>&nbsp;</TD> 
    <TD background="../images/Mail/top_01.jpg">&nbsp;</TD> 
    <TD background="../images/Mail/top_02.jpg"></TD> 
    <TD bgcolor="#FFFFFF" class=rechts>&nbsp;</TD> 
  </TR> 
  <TR> 
    <TD bgcolor="#FFFFFF">&nbsp;</TD> 
    <TD class=links>&nbsp;</TD> 
    <TD background="../images/Mail/left_01.jpg">&nbsp;</TD> 
    <TD valign="top"><TABLE width=100% border=0 cellSpacing=3> 
        <TR> 
          <TD>&nbsp;</TD> 
        </TR> 
        <TR> 
          <TD>&nbsp;</TD> 
        </TR> 
        <TR> 
          <TD>&nbsp;</TD> 
        </TR> 
        <TR> 
          <TD>&nbsp;</TD> 
        </TR> 
        <TR> 
          <TD>&nbsp;</TD> 
        </TR> 
        </TABLE></TD> 
    <TD bgcolor="#FFFFFF" class=rechts >&nbsp;</TD> 
  </TR> 
  <TR bgcolor="#FFFFFF"> 
    <TD height="24">&nbsp;</TD> 
    <TD class=linksonder>&nbsp;</TD> 
    <TD class=onder>&nbsp;</TD> 
    <TD class=onder>&nbsp;</TD> 
    <TD class=rechtsonder>&nbsp;</TD> 
  </TR> 
</TABLE> 
</BODY>
</HTML>


Edit: Ja ik heb wel de ../ vervangen door de URL waar de plaatjes zouden moeten staan. Maar voor de code is dat niet relevant.

[ Voor 115% gewijzigd door BSeB op 04-07-2004 08:40 ]


Acties:
  • 0 Henk 'm!

  • sjoerdb2
  • Registratie: Juli 2001
  • Laatst online: 09-05 09:52
BSeB schreef op 04 juli 2004 @ 08:33:
En ook dat hielp niet. Ik zal vanavond mijn code die ik als HTML mee stuur is posten. Want nu heb ik geen id meer.

PHP:
1
...


Edit: Ja ik heb wel de ../ vervangen door de URL waar de plaatjes zouden moeten staan. Maar voor de code is dat niet relevant.
Het enige dat hier fout aan is geef je zelf ook al aan. De plaatjes moeten dus abslute verwijzingen zijn met volledig pad, dus bijvoorbeeld http://www.domein.nl/plaatje.jpg

Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024

Roa

BSeB schreef op 04 juli 2004 @ 08:33:
En ook dat hielp niet. Ik zal vanavond mijn code die ik als HTML mee stuur is posten. Want nu heb ik geen id meer.

PHP:
1
...


Edit: Ja ik heb wel de ../ vervangen door de URL waar de plaatjes zouden moeten staan. Maar voor de code is dat niet relevant.
Uhm... Ik weet niet hoor, maar sinds waneer kan je gewoon

PHP:
1
<table height=24>


doen??

Ik dacht toch altijd dat dergelijke waarden tussen "" moesten staan :?

Research is what I'm doing when I don't know what I'm doing.


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Roa schreef op 04 juli 2004 @ 12:34:
[...]

Uhm... Ik weet niet hoor, maar sinds waneer kan je gewoon

PHP:
1
<table height=24>


doen??

Ik dacht toch altijd dat dergelijke waarden tussen "" moesten staan :?
In XHTML wel ja, maar klassiek maakt het de gemiddelde browser niet uit of je double quotes, single quotes of geen quotes gebruikt, en of je hoofd- en kleine letters gebruikt voor al je HTML tags en attributes.

Dat het een slechte gewoonte is is een 2e :) Helaas doet Saiya_Jin_Vegeta dus al zo ongeveer alles fout wat je in XHTML fout kunt doen (hoofdletters in tags, geen double quotes overal en table voor layout), maar dat is z'n eigen keuze ;)

[ Voor 16% gewijzigd door curry684 op 04-07-2004 12:40 ]

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Roa schreef op 04 juli 2004 @ 12:34:
[...]


Uhm... Ik weet niet hoor, maar sinds waneer kan je gewoon

PHP:
1
<table height=24>


doen??
Het kan al zeer lang en het werkt alleen als er geen spaties oid tussen staat maar het mag niet geloof ik..

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

html in mail moet je juist nog zoveel mogelijk op de HTML3 manier doen, zelfs een los styleblok kan problemen opleveren in sommige mail-clients - je kan dat beter zoveel mogelijk inline doen

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 16-09 10:29

Apache

amateur software devver

Kan je niet iets als: [img]"data:image/png;base64,[/img] gebruiken om het makkelijk in mail weer te geven?

If it ain't broken it doesn't have enough features


Acties:
  • 0 Henk 'm!

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 15-08 13:07
Ik zal straks alles in HTML3 zetten, misschien dat het dan daar aan ligt dat de pagina daarom niet wil.

Dat betekent dus alle tags in kleine letters en alle dingen die tussen ' ' staan en geen "" hebben naar de vorm "" zetten.

[ Voor 38% gewijzigd door BSeB op 04-07-2004 17:13 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Apache schreef op 04 juli 2004 @ 15:48:
Kan je niet iets als: <img src="data:image/png;base64, $base64encodedimg"> gebruiken om het makkelijk in mail weer te geven?

dat zal ook niet overal werken ;)
BSeB schreef op 04 juli 2004 @ 17:05:
Ik zal straks alles in HTML3 zetten, misschien dat het dan daar aan ligt dat de pagina daarom niet wil.

Dat betekent dus alle tags in kleine letters en alle dingen die tussen ' ' staan en geen "" hebben naar de vorm "" zetten.
nee, dat betekent het niet ;)
wat ik bedoel met "HTML3" is ondermeer zo min mogelijk met CSS doen.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 15-08 13:07
Ik ga nu eerst een klein mailtje sturen met alleen 1 plaatje, gelinkt

Zonder css enzo, als dat lukt ga ik iets met Css proberen. Want ik kan nu zoeken naar een speld in een hooiberg

Acties:
  • 0 Henk 'm!

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 15-08 13:07
Met dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
$message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>

<body>
[img]\"$Website/left_01.jpg\"[/img]
</body>
</html>";


Dan doet hij wel wat ik wil. Dus ligt toch aan de html. Ga nu even iets met css porberen. Zijn er ook GoT tags voor HTML btw want ik gebruik nu die van PHP.

Het blijkt aan de CSS te liggen, heb nu het volgende stukje 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
$message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<style type=\"text/css\">
<!--
.Blaat {
    background-image: url($Website/top_01.jpg);
}
-->
</style>
</head>

<body>
<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
    <td height=\"100\" class=\"Blaat\">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>";

[ Voor 73% gewijzigd door BSeB op 04-07-2004 18:24 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

zet je css inline mbv style=""
en we hebben hier [ code=html ] tags speciaal voor html ;)

Intentionally left blank

Pagina: 1