Mon application envoie des courriels HTML contenant une ou plusieurs images de ratios de taille et de largeur inconnus et de hauteur. L'effet que je veux est Cependant, il semble que la plupart des clients de messagerie, y compris Gmail et Outlook 2010, ignorent ce CSS. Il suffit de définir la largeur et la hauteur ne fonctionnent pas car l'image n'est pas carrée et que je ne connais pas la taille et le ratio à l'avance. P> p>
5 Réponses :
Avec des tailles inconnues d'images, la route programmatique fonctionnera: lors du traitement / de la construction de votre courrier électronique, vous devrez jeter un coup d'œil sur les dimensions des images et définir la hauteur et la largeur en conséquence dans le HTML. P>
De cette façon, vous serez sûr d'avoir des images à l'échelle correctement à l'échelle des clients (ou la plupart :)). P>
Malheureusement, il n'y a pas beaucoup de propriétés CSS qui sont largement prises en charge dans les clients de messagerie. P>
Voici un graphique sur la situation actuelle . P>
Je ne peux que penser à une option comme ce que @groovetrain a suggéré ou générer des vignettes de manière programmatique à partir des images, les stockant et en utilisant celles de l'e-mail. P>
Si vous ne pouvez pas faire une solution programmatique comme Groovetrain suggéré, le meilleur itinéraire est de p>
Je travaille avec un système de messagerie avec un support API limité, alors j'ai parfois dû mettre mon pied et insister sur le fait que les images que nous travaillons soient redimensionnées avant d'être téléchargées. P>
Je sais que c'est vieux, mais je viens de mettre en œuvre cela. Sur la base de ce que Groovetrain suggère - à la recherche de manière programmée sur l'image lorsque vous construisez votre code HTML par courrier électronique - Voici un code C # ASP.NET qui limite la largeur d'une image à 600 s'il est trop grand:
string imgPth = HttpContext.Current.Server.MapPath("/images/yourimage.jpg"); System.Drawing.Image img = System.Drawing.Image.FromFile(imgPth); string emailImage = "<img src='http://www.yourdomain.com/images/yourimage.jpg'"; if (img.Width > 600) emailImage += " width='600' style='width:600px;'"; emailImage += "/>";
Notez la largeur = '600' quitte correctement 'px'. Outlook ignorera le réglage complètement s'il comprend le 'px'.
Vous pouvez utiliser cette méthode pour contrôler la largeur:
<table width="100%"> <!-- a width 100% container --> <tr> <td></td> <!-- an empty cell, which will adapt its width --> <td width="200"> <!-- it's like max-width:200px --> <img src="your_image" width="100%" /> </td> <td></td> <!-- another empty cell, which will adapt its width --> </tr> </table>