26. september 2010 - 23:31 Der er 8 kommentarer og
2 løsninger

Inkludere billed i php mail

Jeg vil gerne inkludere et billed i en php mail.  Jeg har denne kode:

<?php
$to = "[emailadresse]";
$subject = "Test mail";
$message = "
<html>
<body>
  <table>
    <tr>
      <td>Billed: </td><td><img src='picture1.jpg'</td></tr>
    <tr>
  </table>
</body>
</html>
";
$headers = "Content-type: text/html;" . "\r\n";
$headers .= "From: [emailadresse]";
mail($to,$subject,$message,$headers);
?>

Den resulterer i et indhold bestaaende af ordet Billed: plus et roedt kryds.

Det kan ikke vaere fordi billedet ikke eksisterer.  Hvis jeg laver en side med html koden alene (som nedenfor) faar jeg billedet vist korrekt.

<html>
<body>
  <table>
    <tr>
      <td>Billed: </td><td><img src='picture1.jpg'</td></tr>
    <tr>
  </table>
</body>
</html>

Hvad skal jeg stille op?  Jeg har proevet at aendre paa content-type.  Naar jeg googler, for eksempel paa 'php mail image' faar jeg sidevis af komplikeret kode beregnet til copy and paste, men ingen enkel tutorial.
Avatar billede draken Nybegynder
27. september 2010 - 00:27 #1
Hvad med at linke til et billed på din hjemmeside.
Fx <img src='http://www.mitdomaene.dk/images/picture1.jpg'>
Så sendes billedet ikke med, hvilket også belaster lidt mindre.
27. september 2010 - 02:22 #2
draken, tak for indlaegget, men jeg havde haabet paa svar paa mit spoergsmaal (hvordan jeg sender et billed med mailen) snarere end et forslag paa hvordan jeg kan omgaas problemet.  Hvis du mener at det ikke kan lade sig goere at indsaette et billed i en php mail (og du derfor foreslaar en anden loesning) saa fortael mig det venligst direkte, helst med lidt forklaring paa hvorfor det ikke kan lade sig goere.  (Hvis det kan lade sig goere, selv om det ifoelge din mening er daarligt, vil jeg gerne vide hvordan.)
Avatar billede draken Nybegynder
27. september 2010 - 11:10 #3
Hej igen, mit forslag var blot en omgåelse af problemet ;-)
Jeg er endnu ikke så stærk i php at jeg kender alle de bagvedliggende muligheder, så jeg kan desværre ikke foreslå en in-mail-løsning.
Forslaget kom kun på baggrund af egne erfaringer, hvor det at vedhæfte billeder trak en del kraft ud af serveren.
Held og lykke med projektet.
Avatar billede draken Nybegynder
27. september 2010 - 11:16 #4
Jeg foretog lige en hurtig søgning, og fandt denne "manual".
http://php.net/manual/en/function.mail.php

Søg efetr nedenstående kode. Det burde hjælpe dig.

Add the needed headers and send!
<?php
$headers  = "From: \"Me\"<me@example.com>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
mail('myAddress@example.com', 'Email with attachment from PHP', $message, $headers);
?>

Finally, if you add an image and want it displayed in your email, change the Content-Type from attachment to inline:

<?php
$message .= "Content-Disposition: inline; filename=\"$theFile\"\n\n";
?>
27. september 2010 - 15:04 #5
draken, tak for input.  Det link du giver var et af dem jeg havde rodet med men gaaet fortabt i.  Jeg skal nu studere det afsnit naermere som du angiver.  Da jeg er paa ferie, med seks timers tidsforskel, varer det nok lidt foer jeg faar kikket og vendt tilbage.

Men jeg havde haabet at der bestod en enkel loesning saaledes at et billed i en html <img> tag bliver inkluderet i beskedden paa samme maade som andre html tags.  Men maaske kan det ikke lade sig goere.
Avatar billede draken Nybegynder
27. september 2010 - 16:50 #6
Der findes ikke "nemme" løsninger ;-)
Skrub væk fra computeren og nyd ferien.
God ferie!!!!
28. september 2010 - 19:46 #7
Jeg skrubbede lidt vaek fra computeren, men saa kikkede jeg paa dit link og proevede at indsaette koden.  Men uden meget held:

Lad mig starte forfra:  Denne kode vil resultere i en email med message der indeholder ordene 'Billed:' og 'Dette er et billed'

<?php
$to = "[emailadresse]";
$subject = "Test mail";
$message = "
<html>
<body>
  <table>
    <tr>
      <td>Billed: </td><td>Dette er et billed</td></tr>
    <tr>
  </table>
</body>
</html>
";
$headers = "Content-type: text/html;" . "\r\n";
$headers .= "From: [emailadresse]";
mail($to,$subject,$message,$headers);
?>

Jeg vil nu i stedet for teksten 'Dette er et billed' have et billed 'picture1.jpg' der sidder i samme directory som den php fil der skal sende emailen.  Jeg udskifter den midterste kode linie med:

<td>Billed: </td><td><img src='picture1.jpg' /></td></tr>

men i stedet for at faa billedet faar jeg et roedt kryds. 

Saa proever jeg at foelge dit link.  Jeg laver en boundery, jeg aendrer content-type fra text/html til multipart/mixed, og jeg tilfoejer koeden

'$message .= "Content-Disposition: inline; filename='picture1.jpg'\n\n";'

Men emailen jeg faar har som message den ordrette html kode, altsaa:  "<html><body>......Content-Disposition: inline; filename='picture1.jpg'"

Jeg proevede saa med to contenttypes: 

$headers .= "Content-type: text/html\r\n\r\n";
$headers .= "Content-type: multipart/mixed; boundary = $boundary\r\n\r\n";

og saa fik jeg html koden omsat, igen med roedt kryds, og teksten Content-Disposition: inline; filename='picture1.jpg'

Saa jeg gaar galt i byen og har brug for et skub, eller to, i den rigtige retning.
29. september 2010 - 23:18 #8
draken, jeg gav op i foerste omgang og loeste mit umiddelbare problem ved at lave et link til min hjemmeside som du foreslog i #1.  Jeg lukker og opretter et nyt spoergsmaal med haab om at der er en der kender en tutorial til php 'multipart' mail eller kan forklare det i simple vendinger.  Lad os dele points for denne traad.
Avatar billede draken Nybegynder
30. september 2010 - 16:51 #9
Hvis du finder en god løsning, så sæt et link ind her.
God fornøjelse.
30. september 2010 - 22:30 #10
Jeg fandt, ad omveje, en tutorial i menneskesprog.  Den er jeg ved at studere.  Den ser lovende ud.  Her er linket:  http://articles.sitepoint.com/print/advanced-email-php
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester