2010-08-07 6 views
2

J'essaie d'envoyer un email HTML à un compte Gmail, mais pour une raison quelconque, Google enlève le code HTML de mon email. Le code HTML est conservé lorsque j'envoie à d'autres comptes (comptes non-Gmail), donc je sais que mon code HTML est correct.Envoi d'emails HTML à partir de C#

Voici comment je vais à ce sujet:

  1. J'ai une page ASPX, que j'utilise comme un modèle de courrier électronique.
  2. Je récupère le html de la page aspx depuis un service web (fait en C#)
  3. Remplissez dynamiquement le contenu non statique par le biais du code C# dans le service Web.
  4. Envoyez-le en tant que corps de l'e-mail.

Est-ce que quelqu'un sait pourquoi Gmail supprime le code HTML? Merci d'avance.

+1

Partagez ici le code qui ne fonctionne pas. –

Répondre

0

Le Html est préservé quand j'envoie à d'autres comptes (comptes non-gmail) donc je sais que mon code HTML est correct.

Ce n'est pas un problème de programmation. Si c'était le cas, comme vous l'avez remarqué, cela arriverait à tous les clients. Le problème est le suivant: La plupart des clients de messagerie modernes permettent aux utilisateurs de choisir de ne pas autoriser les messages HTML ou de les voir toujours en texte brut. Cela pourrait être ce qui se passe ici. Vous devez coder pour vous attendre à cela, car vous ne pouvez pas contrôler les préférences de l'utilisateur. S'ils ont activé cela, et que vous l'envoyez en HTML seulement, cela leur semblera moche. Toutefois, pour résoudre votre problème, vous devez toujours envoyer votre message en tant que message Multi-Part Mime pour permettre à tous les clients d'obtenir une bonne version lisible.

+0

Merci David. Je suis sûr de m'assurer que c'est Mime Multi-Part –

2

Vous devez être sûr de définir la propriété IsBodyHtml true sur votre MailMessage:

var message = new MailMessage(); 
message.IsBodyHtml = true; 
// Fill and send message here 

Vérifiez la référence MSDN pour plus d'informations:

System.Net.Mail.MailMessage Members