2016-02-20 1 views
0

Je sais qu'il y a beaucoup de questions similaires à celle-ci, mais je n'arrive pas à trouver la bonne réponse. Donc dans ma page j'ai CKEditorControl Je veux utiliser son contenu et l'envoyer comme texte. Le problème est que l'email est envoyé avec tous les tags et qu'ils ne sont pas rendus collés en texte brut.Envoi de courrier avec C# html formaté

public class MailSender 
{ 
    private readonly MailMessage mailMessage; 
    private SmtpClient smtpClient; 
    private string fromEmail = myMail; 
    private string fromPass = myPass; 

    public MailSender() 
    { 
     this.mailMessage = new MailMessage(); 

     this.mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 
     this.mailMessage.BodyEncoding = Encoding.UTF8; 

     this.mailMessage.From = new MailAddress(MyMail); 


    } 

    public void Send(string subject, string body, params string[] to) 
    { 
     this.mailMessage.Body = body;   
     this.mailMessage.Subject = subject; 
     this.mailMessage.IsBodyHtml = true; 
     foreach (var mail in to) 
     { 
      this.mailMessage.To.Add(mail); 
     } 

     using (this.smtpClient = new SmtpClient("smtp.gmail.com", 25)) 
     { 
      this.smtpClient.EnableSsl = true; 
      this.smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
      this.smtpClient.UseDefaultCredentials = false; 
      this.smtpClient.Credentials = new NetworkCredential(this.fromEmail, this.fromPass); 
      this.smtpClient.Send(this.mailMessage.From.ToString(), this.mailMessage.To.ToString(), this.mailMessage.Subject, this.mailMessage.Body); 
     } 

    } 
} 

C'est la classe qui est responsable de l'envoi de mes courriels.

Répondre

1

Voici le code que j'ai écrit un a parfaitement fonctionné pour moi

Default.aspx

<CKEditor:CKEditorControl ID="CKEditor1" BasePath="~/_Samples/ckeditor/" runat="server"></CKEditor:CKEditorControl> 
    <asp:Button ID="SaveButton" runat="server" OnClick="SaveButton_Click" Text="Save Me" /> 

Default.aspx.cs

protected void SaveButton_Click(object sender, EventArgs e) 
     {    
      Mail.SendMail("[email protected]", "cke", CKEditor1.Text); 
     } 

Email.cs

public static void SendMail(string To, string Subject, string Body) 
     { 
      MailMessage message = new MailMessage(); 
      message.From = new MailAddress(SmtpUserName, SmtpFrom); 
      message.To.Add(new MailAddress(To)); 
      message.Subject = Subject; 
      message.Body = Body; 
      message.IsBodyHtml = true; 
      message.BodyEncoding = Encoding.UTF8; 
      message.SubjectEncoding = Encoding.UTF8; 

      var client = new SmtpClient(SmtpAddress, SmtpPort) 
      { 
       Credentials = new NetworkCredential(SmtpUserName, SmtpPassword), 
      }; 

      client.Send(message);    
     } 

J'ai utilisé perdu de ric h fonctionnalités de l'éditeur de texte, gras, italique, couleurs ... et e-mail reçu avec du texte en gras, italique et coloré.

+0

Cela n'a pas fonctionné. Ce qui se passe est que le code de CKEditorControl est avec les balises HTML par exemple

          HEADER

Et je veux être rendu comme en-tête normale, au lieu coller le texte que le texte que vous voyez –

+0

S'il vous plaît voir ma réponse modifiée ci-dessus –

+0

Oui, le problème était que j'envoyais le corps du message et non le message entier. Merci pour le conseil –