Avatar billede mbiegel Nybegynder
25. juli 2008 - 01:21 Der er 13 kommentarer og
2 løsninger

E-mails med billeder

Hej, jeg er ved at lave et script som skal sende mail hvor der er html i. Det vil jeg bruge så jeg i bunden kan indsætte 2 billeder, med <img src="http://hjemmeside.dk/billeder/img2_01.jpg"> - og så skal billedet vises - derudover skal der være en tekst, som er skrevet i $tekst

Jeg har eksperimenteret med dette - men det virker ikke, nogle som kan se hvad fejlen er?

<?php
$tekst = "Tekst";
$billede1 = "sti-til-billede";
$billede2 = "sti-til-billede";
$modtager = "(mail)";
$emne = "Titel";

$besked = "$tekst
          <img src="$billede1">
          <img src="$billede2">";

$header  = "MIME-Version: 1.0" . "\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$header .= "from:(mail)";

mail($modtager, $emne, $besked, $header); //Send!!
?>
Avatar billede thesurfer Nybegynder
25. juli 2008 - 01:33 #1
Husk på at de fleste mailklienter, om det er online eller lokalt, vil normalt blokerer for eksterne billeder.

Dvs, billeder der skal indlæses med en komplet URL (f.eks. http://hjemmeside.dk/billeder/img2_01.jpg ) bliver overhovedet ikke indlæst. Brugeren skal selv vælge at billeder skal vises.. Dvs., ved aktivt klikke på et eller andet..
Avatar billede jakobdo Ekspert
25. juli 2008 - 05:35 #2
Kig på phpmailer og/eller swiftmailer.
Jeg ved phpmailer f.eks. kan sende billedet med, og dermed omgå problemet the surfer beskriver.
Dog fylder alle emails noget mere.
Avatar billede coderdk Praktikant
25. juli 2008 - 10:56 #3
Ja, som jakobdo er inde på, kan du attache billederne og vise dem med <img src="cid:xxxx">, så bliver de vist i klienten såfremt folk læser HTML-mails, uden at de skal trykke på "load images" eller lignende...
php- og swiftmailer understøtter begge dette.
Avatar billede mbiegel Nybegynder
25. juli 2008 - 20:35 #4
Jeg det er jeg med på - men hvorfor virker det scirpt ikke jeg har sat sammen? hvad er fejlen, for det har virket ..
Avatar billede mbiegel Nybegynder
25. juli 2008 - 20:37 #5
Det er et nyhedssystem jeg har udviklet, altså et nyhedsbrev der skal sendes ud til mange - så jeg tror det vil kræve meget trafik, at vedhæfte dem, så de skal bare loades fra serveren ..

Så er det iorden at brugeren selv skal indlæse dem ..
Avatar billede jakobdo Ekspert
25. juli 2008 - 21:56 #6
Det er jo samme trafik...
Om filen sendes, så snakker vi load 1 gang.
Hvis nyhedsbrevet vises flere gange, så flere gange.
Avatar billede mbiegel Nybegynder
25. juli 2008 - 22:55 #7
Ja okay - men billederne skal ikke sendes med, de skal bare være i en url.

Hvad er fejlen i mit script?
Avatar billede jakobdo Ekspert
25. juli 2008 - 23:19 #8
Brug phpmailer eller swiftmailer.
Kig evt. sourcecode og tjek mod den.
Avatar billede mbiegel Nybegynder
26. juli 2008 - 01:52 #9
Er det ikke hele mailsystemer?

Den kode jeg har ovenover har virket - men nu kan jeg ikke lige finde fejlen, det virker bare ikke og jeg får ikke afvide hvad linie fejlen er i.
Avatar billede jakobdo Ekspert
27. juli 2008 - 19:57 #10
Det er "hele" email-systemer/klasser.
Så din tidligere kode ville f.eks. komme til at se sådan her ud:

<?php
require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->From    = "afsender@email.dk";
$mail->FromName = "Afsender Navn";

$body  = 'HTML BESKED';
   
$text_body  = 'PLAIN TEXT BESKED';
   
$mail->Body    = $body;
$mail->AltBody = $text_body;
$mail->AddAddress('modtager@email.dk, 'Modtager Navn');

if(!$mail->Send())
    echo 'Email blev ikke afsendt';
   
$mail->ClearAddresses();
?>
Avatar billede mbiegel Nybegynder
27. juli 2008 - 23:35 #11
Så det vil sige det skal se sådan her ud: ( og er det phpmailer eller swiftmailer?)
<?php
require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->From    = "afsender@email.dk";
$mail->FromName = "Afsender Navn";

$tekst = "Tekst";
$billede1 = "sti-til-billede";
$billede2 = "sti-til-billede";

$body = "$tekst
          <img src="$billede1">
          <img src="$billede2">";
   
$text_body  = 'PLAIN TEXT BESKED';
   
$mail->Body    = $body;
$mail->AltBody = $text_body;
$mail->AddAddress('modtager@email.dk, 'Modtager Navn');

if(!$mail->Send())
    echo 'Email blev ikke afsendt';
   
$mail->ClearAddresses();
?>
Avatar billede jakobdo Ekspert
27. juli 2008 - 23:50 #12
Ja,det vil være noget i den stil...

Du skriver: og er det phpmailer eller swiftmailer?

Hvad tror du selv? :o)

require("class.phpmailer.php"); <----

$mail = new PHPMailer(); <----
Avatar billede mbiegel Nybegynder
29. juli 2008 - 05:26 #13
Det virkede ikke, men tak for hjælpen alligevel

Jeg fik mit eget script til at virke, men smid et svar du har alligevel fortjent nogle point, da du har været flink til at hjælpe :)
Avatar billede jakobdo Ekspert
29. juli 2008 - 23:14 #14
Svar!
Avatar billede jakobdo Ekspert
01. august 2008 - 18:05 #15
Takker for point.
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