Avatar billede nbj1 Praktikant
15. maj 2008 - 10:34 Der er 53 kommentarer og
1 løsning

billede send i phpmailer

At sende gif billede med i phpmailer.
Når jeg sender mail ud bliver der kun vist et icon med x i also selve gif billede kommer ikke med, nogen der ved hvad der er galdt ?
class.phpmailer.php fanger godt nok billede da eller kommer den med en fejl.
rettighederne skulle være ok.
Avatar billede nbj1 Praktikant
15. maj 2008 - 11:09 #1
hvis man tjekker header skrives der Content-Type: text/plain; charset=iso-8859-1

skal det ik være noget med text/html ?
Avatar billede leif Seniormester
15. maj 2008 - 11:14 #2
Hvordan viser du billedet og hvordan vedhæfter du det ?

Du har givet det et cid navn ik ? Og det er det du bruger til at vise det med ?
Avatar billede nbj1 Praktikant
15. maj 2008 - 11:21 #3
den måde jeg troede det skulle vises på er
$body = $mail->getFile('navn.gif');
men tyder på det ik nok. den finder godt nok navn.gif og sender det der skulle være et billede som firkant med kryds i .
??? cid ik med
Avatar billede leif Seniormester
15. maj 2008 - 11:41 #4
Vi er enige om at du vedhæfter billedet med:

$mail->AddEmbeddedImage("navn.gif", "mit-billede", "navn.gif");


Og så bruger:
<img src="cid:mit-billede">

til vise det med.
Avatar billede nbj1 Praktikant
15. maj 2008 - 12:05 #5
nej ik helt fant jeg udaf :) problemet er lidt at phpmailer ikke er en del af et action php program så jeg skulle lige som intregere det og i stedet for
$mail->MsgHTML($body); som jeg troede jeg skulle efter phpmailer bruges der
$mail->MsgHTML($html_msg); og s[ leder den i selv samme fil og der har jeg

<html><body><img src=\"" . SITE_PATH . "C:\Inetpub\wwwroot\globelarts\includes\test\Image\auction.gif\"><p>" . EMAIL_FONT . $html_message . "</body></html>";
men det er ikke rigtigt skrevet ?
Avatar billede nbj1 Praktikant
15. maj 2008 - 12:21 #6
nej dette kender jeg ik
$mail->AddEmbeddedImage("navn.gif", "mit-billede", "navn.gif");
Avatar billede nbj1 Praktikant
15. maj 2008 - 12:52 #7
dette skal ændres, det funker ik 
<html><body><img src=\"" . SITE_PATH . "C:\Inetpub\wwwroot\globelarts\includes\test\Image\auction.gif\"><p>" . EMAIL_FONT . $html_message . "</body></html>";
Avatar billede leif Seniormester
15. maj 2008 - 13:02 #8
Jeg har aldrig kodet på den måde du gør der, da jeg altid blot har lavet AddEmbeddedImage
Avatar billede nbj1 Praktikant
15. maj 2008 - 13:30 #9
nej ok har fundet udaf stien så det er ok, den mail jeg sender for jeg fint frem nu med echo hvor tekst og logo er med, men stadig når jeg så modtager mailen er logoet væk... underligt
Avatar billede leif Seniormester
15. maj 2008 - 14:51 #10
Ja, når du laver en Echo ser den fint ud.

Men laver du så:
<img src="http://domæne.dk/sti/til/billede.gif">


Enten skal den loade billedet fra en extern server ellers skal du embedde billedet i mailen.
Avatar billede nbj1 Praktikant
15. maj 2008 - 15:04 #11
ja eks når jeg submit mail laver jeg efter en echo så jeg ser hvad den sender og det ser fint ud.
og her laver jeg img src
<html><body><img src=\"" . SITE_PATH . "test\Image\auction.gif\"><p>" . EMAIL_FONT . $html_message . "</body></html>";
så skal jeg på en måde have flettet embedde in, jeg har prøvet med
$mail->AddEmbeddedImage("auction.gif", "mit-billede", "auction.gif");

men den køber den ik
Avatar billede nbj1 Praktikant
15. maj 2008 - 15:10 #12
det der egenlig sker er dette
    $html_msg = "<!--\n" . $text_message . "\n-->\n".
            "<html><body><img src=\" " . SITE_PATH . "includes/test/auction.gif\"><p>" . EMAIL_FONT . $html_message . "</body></html>";
og $html_msg tilføjes i phpmailer med
$mail->MsgHTML($html_msg);
Avatar billede nbj1 Praktikant
15. maj 2008 - 15:50 #13
hvad skal jeg fange med ?
$mail->AddEmbeddedImage("auction.gif", "mit-billede", "auction.gif");
mit-billede er det bare tekst ?
skal der den fulde sti med til auction.gif ?
Avatar billede leif Seniormester
15. maj 2008 - 16:09 #14
Du har ikke svaret mig på om du reelt loader billedet med http://domæne.dk foran eller ej


mit-billede er det cid den får, men den vil du ikke kunne echo ud på samme måde som du gør nu.


Hvis du ikke vil embedde billedet skal du loade billedet med:
<img src="http://domæne.dk/sti/til/billede.gif">


Men så vil det kun blive loadet hvis brugeren tillader det.
Avatar billede leif Seniormester
15. maj 2008 - 16:10 #15
Jeg kan jo ikke se hvad SITE_PATH indeholder.
Avatar billede nbj1 Praktikant
15. maj 2008 - 16:40 #16
site_path er bare domænenavn
Avatar billede nbj1 Praktikant
15. maj 2008 - 16:42 #17
http://domæne.dk/
og jo jeg loader billedet med dette:
$html_msg = "<!--\n" . $text_message . "\n-->\n".
            "<html><body><img src=\" " . SITE_PATH . "includes/test/auction.gif\"><p>" . EMAIL_FONT . $html_message . "</body></html>";
Avatar billede nbj1 Praktikant
15. maj 2008 - 16:56 #18
sjovt nok hvis jeg laver en AddAttachment($path);
så sendes billede fint nok med
Avatar billede nbj1 Praktikant
15. maj 2008 - 17:37 #19
skulle man ikke kunne dette her så
$html_msg = "<!--\n" . $text_message . "\n-->\n".
            "<html><body><img src=\"cid:test " . SITE_PATH . "includes/test/auction.gif\"><p>" . EMAIL_FONT . $html_message . "</body></html>";

$mail->AddEmbeddedImage('auction.gif', 'test', 'auction.gif ');
kan ikke forstå hvorfor dt ik giver det samme _?
Avatar billede leif Seniormester
15. maj 2008 - 18:21 #20
Nej, så ville det være:



$html_msg = "<!--\n" . $text_message . "\n-->\n".
            "<html><body><img src=\"cid:test\"><p>" . EMAIL_FONT . $html_message . "</body></html>";


$mail->AddEmbeddedImage('includes/test/auction.gif', 'test', 'includes/test/auction.gif');
Avatar billede nbj1 Praktikant
15. maj 2008 - 18:48 #21
kan jeg ik få det med site_path ind også ?
$html_msg = "<!--\n" . $text_message . "\n-->\n".
            "<html><body><img src=\"cid:test\.SITE_PATH."><p>" . EMAIL_FONT . $html_message . "</body></html>";
Avatar billede nbj1 Praktikant
15. maj 2008 - 19:12 #22
nej det som lige meget hvad jeg gør, om jeg så skriver http.....osv der kommmer bare ik noget billede med.
Avatar billede leif Seniormester
15. maj 2008 - 19:30 #23
Hvis du laver:
$html_msg = "<!--\n" . $text_message . "\n-->\n".
            "<html><body><img src=\"http://www.domæne.dk/includes/test/auction.gif\"><p>" . EMAIL_FONT . $html_message . "</body></html>";


Så bør du bare blive bedt om du vil loade billedet i dit mailprogram (Har du evt. testet hos andre og i andre mailklienter?)
Avatar billede nbj1 Praktikant
15. maj 2008 - 19:33 #24
se nu fik jeg noget underligt ud som billede
< <img src="cid:ca72810d8ad14f29200144308bd46968" >
ved brug af dette: &ltimg src=\"cid:test\"
ser det ik lidt udtil der på en måde commer noget md5 codning in i billedet _?
Avatar billede nbj1 Praktikant
15. maj 2008 - 19:51 #25
hvis jeg laver det sadan
$html_msg = "<!--\n" . $text_message . "\n-->\n".
            "<html><body><img src=\"http://www.domæne.dk/includes/test/auction.gif\"><p>" . EMAIL_FONT . $html_message . "</body></html>";

kommer der stadig intet billede kun den firkant med kryds i
og ja har prøvet til yahoo og msn begge det samme resultat.
http://www.domæne.dk/includes/test/auction.gif i explore vises billedet fint nok
Avatar billede leif Seniormester
15. maj 2008 - 20:00 #26
Prøv at kom med hele din kode.

Du må smide det igennem eller anden funktion som ændrer koden. I grove træk bruger jeg følgende kode:
require("class.phpmailer.php");

$mail = new phpmailer();


$mail->From    = "sender@email.tld";
$mail->FromName = "Sender Navn";
$mail->Host    = "localhost";
$mail->Mailer  = "smtp";

$body = '<img src="cid:my-top">';

$text_body  = "Desværre det er en HTML email";

$mail->Body    = $body;
$mail->AltBody = $text_body;

$mail->AddEmbeddedImage("billede.gif", "my-top", "billede.gif");

$mail->IsHTML(true);

$mail->AddAddress("test@email.tld", "Test navn");

if(!$mail->Send()) {
echo "There has been a mail error sending to test@email.tld";
}
else
{
echo "Mail sent to test@email.tld";
}
Avatar billede leif Seniormester
15. maj 2008 - 20:01 #27
Har du prøvet til en Mailklient såsom Outlook, Thunderbird eller lign ?
Avatar billede nbj1 Praktikant
15. maj 2008 - 20:27 #28
så nu sker der noget :) jeg var lidt træt af det skidt, så jeg sat det tilbage stort set som det var og vupti nu er det med ok billedet ligger i bunden af mailen men det vel bare og ændre rækkefølgen af koden vil jeg tro
jeg har lavet det som attachment men billedet vises aligivel ????
kikker lidt i morgen på det du maillede sidst kan nok hjælpe tak
Avatar billede nbj1 Praktikant
16. maj 2008 - 11:06 #29
leif nu har jeg snart prøvet på 100 måder, for at få byttet rundt på logo og tekst, men logo bliver ved med at blive vist i bunden af mailen, vel du tage et kik på koden _?
Avatar billede leif Seniormester
16. maj 2008 - 11:40 #30
Har du prøvet at sende til en Outlook ?
Avatar billede nbj1 Praktikant
16. maj 2008 - 11:47 #31
ja og det virker fint nok alt sammen, nu er det kun at få logo i top i stedet for bund men tror nok det er denne her line der bestemmer det
function send_mail($to, $subject, $text_message, $from_email, $html_message = null, $from_name = null, $send = true)
Avatar billede nbj1 Praktikant
16. maj 2008 - 12:40 #32
dette her vil bare sætte det sammen som jeg gerne vil have det '

$mail    = new PHPMailer();

$mail->addAttachment('C:\Inetpub\wwwroot\globelarts\includes\test\Image\auction.jpg');
        $html_message = ($html_message) ? $html_message : $text_message;

$mail->Subject = $subject;
$text_body  = "Desværre det er en HTML email";


//$mail->AltBody = $text_body.$html_message;
//$mail->AltBody = $text_body;
$mail->IsHTML(true);
$html_msg = '<img src="cid:my-top">';
$html_msg = $mail->AddEmbeddedImage("C:\Inetpub\wwwroot\globelarts\includes\test\Image\auktion.jpg", "my-top", "C:\Inetpub\wwwroot\globelarts\includes\test\Image\auction.jpg");
$mail->From = $_REQUEST['email'];
$mail->FromName = " GlobelArts";


$mail->AddAddress($to);
        $html_msg =
            "<html><body><img src=\" " . SITE_PATH . "includes/test/auction.gif\"><p>"
        . EMAIL_FONT . $html_message . "</body></html>";//. "<!--\n" . $text_message . "\n-->\n";   
       
        $from_name = ($from_name) ? $from_name : $from_email;
//$body = $mail->$text_message;
//$mail->AddEmbeddedImage('http://www.globelarts.com/includes/test/auction.jpg','test','http://www.globelarts.com/includes/test/auction.jpg');
$mail->MsgHTML($html_msg);
Avatar billede leif Seniormester
16. maj 2008 - 15:29 #33
Hvorfor smider du $mail->AddEmbeddeImage ind i variabel:

Samtidig overskriver du $html_msg i stedet for at tilføje til den, prøv med:
$mail    = new PHPMailer();

        $html_message = ($html_message) ? $html_message : $text_message;

$mail->Subject = $subject;
$text_body  = "Desværre det er en HTML email";

$mail->IsHTML(true);
$mail->AddEmbeddedImage("C:\Inetpub\wwwroot\globelarts\includes\test\Image\auktion.jpg", "my-top", "C:\Inetpub\wwwroot\globelarts\includes\test\Image\auction.jpg");
$mail->From = $_REQUEST['email'];
$mail->FromName = " GlobelArts";


$mail->AddAddress($to);
        $html_msg =
            "<html><body><img src=\"cid:my-top\"><p>"
        . EMAIL_FONT . $html_message . "</body></html>";//. "<!--\n" . $text_message . "\n-->\n"; 
     
        $from_name = ($from_name) ? $from_name : $from_email;


$mail->MsgHTML($html_msg);
Avatar billede nbj1 Praktikant
16. maj 2008 - 15:49 #34
hej '
det er prøvet men giver samme resultat tom firkant med kryds lidt det samme som hvis et billede ikke forefindes, men det gør den og den kan vises måske retigheder for at sende den men syntes ogs jeg har ændret det ...
Avatar billede leif Seniormester
16. maj 2008 - 15:56 #35
Hvad hvis du bruger:
$mail->AddEmbeddedImage("includes\test\Image\auktion.jpg", "my-top", "includes\test\Image\auktion.jpg");
Avatar billede nbj1 Praktikant
16. maj 2008 - 16:13 #36
se nu sker der noget hvis jeg bruger dette her skal jeg i outlook trykke download i mailen og wupti så vises billedet
"<html><body><img src= \"http://www.globelarts.com/includes/test/auction.gif\"><p>".
Avatar billede leif Seniormester
16. maj 2008 - 16:28 #37
Ja, det var det jeg skrev 15/05-2008 16:09:54
Avatar billede nbj1 Praktikant
16. maj 2008 - 16:38 #38
jo men dr ville det ikke underligt men så lidt crap man skal download billedet.
men  AddEmbeddedImage det funker bare ik her, er der noget i php.ini der skal ændres ?
Avatar billede leif Seniormester
17. maj 2008 - 10:09 #39
Ikke som jeg kan se
Avatar billede nbj1 Praktikant
17. maj 2008 - 14:06 #40
hvad mnener du ?
Avatar billede nbj1 Praktikant
17. maj 2008 - 14:07 #41
må ok du mener der ingen tilpasning af php.ini
Avatar billede leif Seniormester
17. maj 2008 - 14:17 #42
Hvis jeg bruger den kode jeg har sendt så virker det i Outlook og hos gmail.com men ikke i Thunderbird
Avatar billede nbj1 Praktikant
17. maj 2008 - 14:45 #43
ja men jeg fatter det ik så der må være andre ting der forhindre det så, men jeg ved ik lige hvad, ok jeg kan prøve at lave en selvstændig php fil send mail og se om det virker så udlukker jeg da nogle ting
Avatar billede nbj1 Praktikant
17. maj 2008 - 15:51 #44
ok det gir det samme så er det min mailserver måske,, hvad kan man prøve af andre mailserver _?
Avatar billede nbj1 Praktikant
17. maj 2008 - 15:55 #45
eller er det php.mailer hvor der skal stå noget bestemt da attach ingen problem
Avatar billede nbj1 Praktikant
17. maj 2008 - 15:57 #46
/**
  * Sets the Content-type of the message.
  * @var string
  */
  public $ContentType      = 'text/plain';
er det korekt skal det ik være html _?
Avatar billede nbj1 Praktikant
17. maj 2008 - 16:48 #47
ok nu virker det som det skal med en test.php så alt er ok med mailserver og andre ting, det er simpelhen når jeg ligger det i filen med auction det går galdt.
Avatar billede nbj1 Praktikant
17. maj 2008 - 18:55 #48
ok tak gi lige et svar nu har jeg fået det til at virke.
Avatar billede leif Seniormester
17. maj 2008 - 23:17 #49
Hvad var galt og hvad var løsningen ?
Avatar billede nbj1 Praktikant
18. maj 2008 - 06:15 #50
der var det galdt at der hvor der står rock.png skulle stå html stien til billedet.
og hvor der står img alt=PHPmailer skal stå fra domæne navn, alså includes/test/auction.gif
$mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png");
$mail->Body = 'Embedded Image: <img alt="PHPMailer" src="cid:my-attach"> Here is an image!';
Avatar billede nbj1 Praktikant
18. maj 2008 - 06:19 #51
og for at få billede og auction teksten med samtidigt skulle jeg
add .$tekst_message efter src="cid:my-attach">

$mail->Body = 'Embedded Image: <img alt="PHPMailer" src="cid:my-attach"> Here is an image!'"<br>".$tekst_message ;
Avatar billede leif Seniormester
18. maj 2008 - 10:26 #52
Jeg skriver da ikke alt="" i mine <img> men okay.
Avatar billede nbj1 Praktikant
18. maj 2008 - 10:33 #53
og tak
Avatar billede leif Seniormester
18. maj 2008 - 10:40 #54
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