2008-11-26 11 views
0

J'utilise un fichier texte préformaté comme modèle pour les courriels. Le fichier a des sauts de ligne où je les veux. Je voudrais utiliser ce modèle pour envoyer un e-mail en texte brut, mais quand je le fais, je perds tout formatage. Les sauts de ligne sont supprimés.Comment utiliser un fichier txt de modèle d'e-mail et conserver le formatage?

Comment puis-je analyser ce fichier et conserver les sauts de ligne? Je ne souhaite pas utiliser de balise <pre> car je souhaite envoyer des courriers électroniques en texte brut.

J'utilise la méthode classique ASP ReadAll pour tirer le modèle dans une chaîne:

  Dim TextStream 
     Set TextStream = FSO.OpenTextFile(Filepath, ForReading, False, TristateUseDefault) 

     ' Read file in one hit 
     Dim Contents 
     GetTemplate = TextStream.ReadAll ' return file contents 

Qu'est-ce que je manque?

Répondre

1

Le code que vous affichez ne doit pas supprimer les sauts de ligne. Le problème est probablement sur la partie de génération d'email. Pourriez-vous montrer cette partie?

Le type de contenu de la messagerie est-il: text/plain?

+0

Woo hoo! Juste sur l'argent! Tu as fait ma journée. J'étais convaincu qu'il me manquait quelque chose dans la façon dont je lisais le dossier. Mais oui, j'ai envoyé accidentellement l'email au format HTML! Merci encore! –

3

ce que je l'ai fait ...

Je prends un texte ou un fichier HTML, (je vais vous montrer le texte, depuis sa plus petite, mais exactement le même code s'applique), et je sais bien mis valeurs dans le fichier texte que je peux remplacer plus tard.

- Begin fichier texte

We've generated a new password for you at your request, you can use this new password with your username to log in to various sections of our site. 

Username: ##UserName## 
Temporary Password: ##Password## 

To use this temporary password, please copy and paste it into the password box. 

Please keep this email for your records. 

- Fin fichier texte

Ensuite, c'est une simple question de créer une liste de paires clé/valeur, avec le texte à remplacer, et la valeur vous le remplacez par. Chargez le fichier dans la mémoire sous la forme d'une chaîne, et bouclez votre paire clé/valeur en remplaçant vos valeurs de texte.

ListDictionary dictionary = new ListDictionary 
              { 
               {"##UserName##", user.BaseUser.UserName}, 
               {"##Password##", newPassword} 
              }; 


      string fromResources = GetFromResources("forgotpasswordEmail.html"); 
      string textfromResources = GetFromResources("forgotpasswordEmail.txt"); 
      foreach (DictionaryEntry entry in dictionary) 
      { 
       fromResources = fromResources.Replace(entry.Key.ToString(), entry.Value.ToString()); 
       textfromResources = textfromResources.Replace(entry.Key.ToString(), entry.Value.ToString()); 
      } 

Ensuite, vous pouvez envoyer un courriel le texte, (dans ce cas, la variable textfromResources), et il contiendra tous les sauts de ligne nécessaires et la mise en forme.

Comme je l'ai dit, vous pouvez le faire EACT même chose avec les fichiers HTML, ou tout autre type de fichier que vous voulez.

Bien que mon exemple est en C#, (je n'ai pas de code ASP classique à portée de main, désolé), le concept de recherche et de remplacement des valeurs s'appliquera à ASP classique.

+0

Vous avez décrit exactement comment je l'ai maintenant la configuration. Votez pour l'explication approfondie si! –

Questions connexes