2009-10-19 1 views
1

Je porte un code VBScript qui génère des emails en utilisant l'objet Message CDOSYS standard. Le message oject a une propriété AutoGenerateTextBody qui, lorsqu'il est défini sur true, crée automatiquement la valeur de la propriété TextBody lorsque vous affectez le code HTML à la propriété HTMLBody. D'où la création des alternatives text/plain et text/html typiques dans le corps du message.Existe-t-il une équivalence avec CDOSYS AutoGenerateTextBody dans .NET?

Cependant, il semble que .NET manque à cette fonction. L'objet MailMessage a la possibilité de créer des vues alternatives, mais il ne semble pas y avoir moyen de créer facilement le contenu du corps du texte à partir du contenu HTML. Je ne suis pas nécessairement à la recherche d'une option de magie automatique, mais j'ai besoin d'une solution pour prendre ce qui est une chaîne HTML et la convertir en une représentation raisonnable en texte brut. Laisser tomber tout le balisage HTML ne le coupe pas.

Y a-t-il un outil enfoui quelque part dans le framework .NET existant qui peut le faire?

Répondre

0

Je ne connais rien dans le framework .NET lui-même, mais vous pouvez utiliser CDO pour faire la conversion pour vous. Certes, il se sent comme un peu un hack sale, mais fait le travail!

Ajouter une référence à la « Microsoft CDO pour Windows 2000 Library » (dans l'onglet COM du « Ajouter une référence » dialogue) et vous partez:

public string GetTextBody(string htmlBody) 
{ 
    CDO.Message msg = new CDO.Message(); 
    msg.AutoGenerateTextBody = true; 
    msg.HTMLBody = htmlBody; 

    return msg.TextBody; 
} 
+1

Merci, mais non merci. ;) Je préfère écrire ma conversion HTML-> Texte que d'ajouter une dépendance sur le CDOSYS juste réaliser cette opération. – AnthonyWJones

+0

@Anthony: Oui, je suis complètement d'accord. Je pensais juste que je mentionnerais la possibilité. – LukeH

Questions connexes