2010-09-23 6 views
2

J'utilise ce code pour envoyer un emailEnvoi de messages électroniques à un utilisateur

var message = new MailMessage("[email protected]", "[email protected]"); 
message.Subject = "Testing"; 
message.IsBodyHtml = true; 
message.Body = "<html><body>IMAGINE A LOT OF HTML CODING HERE</body></html>"; 

Le problème est que je viens de copier le code HTML que je veux envoyer le courrier électronique et maintenant je dois faire tout le code HTML dans UN une seule ligne! Sinon, il dit ";" disparu! Je veux dire, maintenant je ne peux pas continuer à enlever des espaces et à tout mettre en une seule ligne! C'est trop de code HTML que je dois envoyer. Que fais-je ? :/

[EDIT] Une autre question: y a-t-il une limite à cette message.Body? Comme une limite à combien de HTML peut être inséré dans cela?

Répondre

10

Dan a donné une option - littéraux littéraux de chaîne - mais je voudrais suggérer que vous déplacez les données dans un fichier HTML séparé. Incorporez-le en tant que ressource dans votre assembly, puis vous pouvez le charger au moment de l'exécution. De cette façon, vous obtiendrez la mise en évidence de la syntaxe HTML, vous n'encombrerez pas votre code avec beaucoup de données, et vous pourrez l'éditer très facilement à tout moment, sans avoir à vous soucier de choses comme des guillemets (qui aurait besoin d'être doublé dans un littéral de chaîne verbatim, ou échappé avec une barre oblique inverse dans un littéral de chaîne normal). L'inconvénient est qu'il devient plus difficile de mettre des données utilisateur dans le code HTML - pour cela, vous pouvez envisager d'utiliser un système de modèle; soit simplement manuscrite (html = html.Replace("$user", name)) ou l'une des diverses bibliothèques de modèles disponibles. Veillez à utiliser l'échappement HTML, le cas échéant, bien sûr.

+0

ok va essayer de faire ça..thnx – Serenity

6

Vous pouvez utiliser le caractère @:

message.Body = @" 
    <html> 
     <body> 
      IMAGINE A LOT OF HTML CODING HERE 
     </body> 
    </html>"; 

Cela fonctionne bien si vous avez un petit balisage HTML/veulent une solution rapide et sale. Pour le code de production, je vous recommande d'utiliser ce que Jon Skeet suggère, en conservant un fichier HTML séparé.

+1

Référence: http://msdn.microsoft.com /en-us/library/aa691090(VS.71).aspx –

1

Mettez le texte sur plusieurs lignes?

message.Body = "<html><body>IMAGINE A LOT OF "+ 
       " HTML CODING HERE</body></html>"; 
Questions connexes