2011-01-07 8 views
1

Ich frage mich, ob es möglich ist, ein bestimmtes Image für bestimmte E-Mail-Clients bereitzustellen, die keine animierten GIFs unterstützen. Ich weiß, dass es möglich ist, PHP zu verwenden, um ein Bild dynamisch zu erzeugen.Erkennen von E-Mail-Clients mit dynamischem Bild

Wenn also etwas wie User Agent-Strings gelesen werden kann, wenn der E-Mail-Client eine Anforderung zum Herunterladen des dynamischen Bildes sendet, könnte php ein anderes Bild an die E-Mail-Clients senden, die animierte GIFs nicht unterstützen.

Ist dies möglich oder gibt es eine vergleichbare Arbeit, um animierte GIF-Unterstützung auszuspionieren und ein alternatives Bild zu erstellen?

Antwort

1

Ok dank profitPHP, die Bildprotokollierung vorschlagen. Ich habe unten mit dem kommen ...

<?php 
// Find needle in User Agent Hay Stack 
$useragent = $_SERVER['HTTP_USER_AGENT']; 
$isLotus = strpos($useragent,'Lotus-Notes'); 
$isMsoffice = strpos($useragent,'MSOffice'); 

// Route request to supported image 
if ($isLotus === false && $isMsoffice === false) { 
    header('Content-type: image/gif'); 
    readfile('images/email-announcement_02.gif'); 
} else { 
    header('Content-type: image/gif'); 
    readfile('images/noAnim_02.gif'); 
} 
?> 

Dies wird die Lotus Notes oder MS Outlook-Versionen finden, die GIF- Animationen nicht unterstützen. Sie können die Readfile zu Ihren eigenen lokalen Dateien ändern.

Ich habe dies auf Outlook 2001-2010 und Lotus Notes 6-8 getestet und es liefert das entsprechende Bild für die entsprechende Version.

3

Beginnen Sie, es auszuprobieren. Starten Sie einen Client, der dies nicht unterstützt, senden Sie sich die fragliche Nachricht und sehen Sie sich die HTTPD-Protokolle an. Wahrscheinlich müssen Sie dies von Fall zu Fall programmieren.

+0

jemals so etwas getan? Verfügen Sie über eine Ressource, die ich konsultieren könnte, um mit der Erkennung von Benutzeragenten zu beginnen? – bgreater

+0

mach dein Bild-Tag in der E-Mail-Adresse http://yourserver.com/imagelogger.php. In diesem Skript loggen Sie die Variablen $ _SERVER in eine Protokolldatei ein, um zu sehen, was Sie erhalten. Außerdem können Sie die Apache/IIS-Protokolle überprüfen und auf diese Weise Informationen über die Anfrage erhalten. – profitphp

-1

Ich habe noch nie von einem E-Mail-Client gehört, der animierte Gifs nicht unterstützt, außer vielleicht aus Größengründen.

Mein Verständnis ist, dass es zwei Arten von Bildern gibt, die Sie in eine E-Mail einfügen können. Der erste ist ein angehängtes Bild, in dem Sie das Bild mit der E-Mail als Teil der E-Mail senden. Das zweite ist ein externes Bild, in dem Sie ein Bild von einer Website referenzieren.

Ich denke, was Sie untersuchen möchten, ist Senden einer MIME-E-Mail. Wenn Sie PHP-Mime googlen, werden Sie mit einer Menge Ergebnisse kommen.

Im Wesentlichen ermöglicht dies Ihnen, eine E-Mail zu senden, die in verschiedenen Teilen abhängig von der Fähigkeit des Clients ist. Aus Erfahrung habe ich MIME-E-Mails gesendet, die nur HTML und Text waren. Weil einige E-Mail-Clients keine HTML-Nachrichten akzeptieren.

Ich hoffe, das gibt Ihnen eine Richtung.

+0

Outlook 2007 und 2010 unterstützen keine animierten GIFs. (Ich glaube auch nicht Lotus Notes 6 oder 7). –

+0

Korrekte Sean, daher mein OP – bgreater