简体   繁体   English

使用c#html格式发送邮件

[英]Sending mail with c# html formatted

I know there are a lot of question similar to this one but I cannot seem to find the right answer. 我知道有很多与此问题类似的问题,但我似乎找不到正确的答案。 So in my page I have CKEditorControl I want to use its content and send it as text. 所以在我的页面中,我有CKEditorControl,我想使用其内容并将其作为文本发送。 The problem is that the email is send with all the tags and they are not rendered put pasted as plain text. 问题在于,电子邮件将与所有标签一起发送,并且不会呈现为将其粘贴为纯文本格式。

  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);
        }

    }
}

This is the class which is responsible for sending my emails. 这是负责发送我的电子邮件的课程。

Here is code that I've wrote an worked perfectly for me 这是我为我写的完美作品的代码

Default.aspx 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 Default.aspx.cs

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

Email.cs 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);            
        }

I used lost of rich text editor features, bold, italic, colors ... and received email with bold, italic and colorful text. 我失去了丰富的文本编辑器功能,粗体,斜体,颜色...,并收到了带有粗体,斜体和彩色文本的电子邮件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM