Avatar billede cambiare Nybegynder
10. december 2009 - 23:06 Der er 6 kommentarer

server blokerer img tag i mails inden de når clienten

Mange har måske haft problemer med at sende mails afsted hvor billedet bliver vist. Dette er til gengæld ikke mit problem her... Har nu forgæves prøvet 1000vis af forskellige ting og kan se at mit email script ikke fungerer når der i min besked står "<img src="stien" alt="" /> forstår dog overhovedet ikke hvorfor...

Her er min kode:

<?php
ini_set('display_errors', '1');

$name = "Mit navn";
$emailarr = array("email@email.dk");
$emails = implode(",", $emailarr);
$image = "http://domain.com/image.jpg";

$from = "Afsender <sender@email.dk>";

$header  = "MIME-Version: 1.0" . "\r\n";
$header .= "Content-type: text/html;" . "\r\n";
$header .= "from:".$from;

$subject = 'Hej ' . $name . ', hvad så?';

$message = '<body bgcolor="#000000" marginwidth="0px" marginheight="0px" style="margin:0px; background-color: #000000;">
<table bgcolor="#000000" width="100%">
  <tr>
  <td>
    <center>
    <a href="http://www.google.dk/" style="width: 550px; margin:auto;">
      <img src="'.$image.'">
      <!-- Her er det så mystikken opstår
          jeg kan simpelthen ikke få lov
          at skrive <img>
          Men skriver jeg det sådan her
          går det igennem: -->

      <!--<img src="'.$image.'">-->

      <!-- Jeg var overbevist om at det havde
          noget at gøre med min måde at sende
          det afsted på da jeg har checket det
          på 3 forskellige udbydere
          rackspace, gmail og surftown og ingen
          modtager emails'ne medmindre img tagget
          er udkommenteret, hvilket vil sige at
          det kun kan være den del af scriptet
          der fejler -->
    </a>
    </center>
  <td>
  </tr>
</table>
</body>';

$mail_status = mail($emails, $subject, $message, $header);

echo $mail_status ? 'Email sent to: '.$emails : 'Email failed';

Min egen udbyder er surftown og jeg har checket i deres FAQ hvordan et mailscript opsættes og der er ikke noget der strider med den måde de gør det på...
Avatar billede repox Seniormester
11. december 2009 - 20:10 #1
Hvad indeholder $image? Og er du sikker på indholdet af $image er hvad du forventer?
Avatar billede cambiare Nybegynder
11. december 2009 - 20:24 #2
Det står i koden .. det er $image = "http://domain.com/image.jpg";
Avatar billede repox Seniormester
11. december 2009 - 20:29 #3
Jeg kan også spørge på en anden måde; det du indsætter i mailens body, er det hvad du forventer?
Der er jo en grund til at dine mails ikke når frem.
Hvad returnerer mail() når du indsætter billedet?
Avatar billede cambiare Nybegynder
11. december 2009 - 20:44 #4
Selve mail kaldet returner true ... dvs. den udskriver "Email sent to: '.$emails" hvor $emails selvf. er de emails der er i arrayet.. jamen hvis ikke img tagget står i mailen når den frem til alle de emails den skal...

Selv hvis jeg udkommenterer <img> tagget bliver e-mailen sendt! Med det udkommenterede .. Det er kun hvis <img> tagget skal renderes i e-mail clienten at den fejler! (ikke modtager emails)

Hvis jeg hardcoder <img> tagget uden brug af variablen $image fejler den også.. Så forstår ingenting.. Har læst noget med at en email kan blive tolket som spam hvis den indeholder mere indhold i billeder end tekst og har derfor prøvet at skrive en masse tekst og lave billedet til et 50x50px, men uden effekt...
Avatar billede repox Seniormester
11. december 2009 - 21:08 #5
Jeg kan da spam-teste den for dig, hvis det er...
Prøv lige at sende mailen til denne adresse:
b976826@emailtests.com

Hvis jeg kan modtage den herpå, så kan det også være jeg bedre kan se problemet.

Skriv lige når du har sendt den.
Avatar billede repox Seniormester
14. december 2009 - 09:19 #6
Nå, nu har jeg fået den kan jeg se...

Din mail passerede kun syv af de ti filtre jeg tester på, men fejlene ligger i din mails kildekode.
Jeg forstår slet ikke hvordan ovenstående stump kode kan producere den kilde jeg ser, men det overrasker mig ikke synderligt meget at det ikke virker efter hensigten.

Hvis det har interesse har jeg lagt en kopi op på http://pastebin.com/m784324bc

Jeg vil anbefale dig at lede efter en klasse (som f.eks. phpmailer) til at sende dine mails ud fra, fremfor selv at opfinde den dybe tallerken igen - det kan også løse nogle af de problematikker der i at komme forbi spam-filtrene.
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