7
votes

Comment créer un effet max-largeur et max-hauteur sur une image envoyée dans un email HTML?

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 xxx

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.


0 commentaires

5 Réponses :


7
votes

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.

De cette façon, vous serez sûr d'avoir des images à l'échelle correctement à l'échelle des clients (ou la plupart :)).


0 commentaires

4
votes

Malheureusement, il n'y a pas beaucoup de propriétés CSS qui sont largement prises en charge dans les clients de messagerie.

Voici un graphique sur la situation actuelle .

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.


0 commentaires

1
votes

Si vous ne pouvez pas faire une solution programmatique comme Groovetrain suggéré, le meilleur itinéraire est de

  1. Connaissez les dimensions max & min que sont possibles pour l'image qui apparaîtront.
  2. Assurez-vous que l'élément contenant permet des dimensions maximales.
  3. Dans l'élément contenant, définissez l'alignement horizontal et vertical (et si nécessaire le remplissage) de sorte que l'e-mail ait l'air acceptable avec les images les plus grandes et les plus petites.

    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.


0 commentaires

0
votes

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 += "/>";


1 commentaires

Notez la largeur = '600' quitte correctement 'px'. Outlook ignorera le réglage complètement s'il comprend le 'px'.



0
votes

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>


0 commentaires