Отправка электронных писем в формате Html с использованием кода на C #

#c# #.net #html #xml #xslt

#c# #.net #HTML #xml #xslt

Вопрос:

Я использовал следующий код для преобразования xml в html с помощью таблицы стилей xsl.Теперь я должен отправить сгенерированный html в виде электронного письма выбранным людям.Я не знаю, как это сделать.Пожалуйста, помогите!!!

     //import name spaces
    using System.Xml.Xsl;
    using System.Xml.XPath;
    using System.IO;
    using System.Xml;

    public static void Transform(string XmlPath, string XslPath){

    try{

        //load the Xml doc
        XPathDocument XPathDoc = new XPathDocument(C:Dibyasvnlog.xml) ;

        XslTransform XslTrans = new XslTransform() ;

        //load the Xsl 
        XslTrans.Load(C:Dibyasvnlog.xsl) ;

        //create the output stream
        XmlTextWriter Writer = new XmlTextWriter
            ("CommitReport.html", null);

        //do the actual transform of Xml
        XslTrans.Transform(XPathDoc,null, Writer);        

        Writer.Close() ;


    }
      catch(Exception ex)
    {

        Response.Write(ex.Message);
    }

    }
 

Комментарии:

1. Этот код на самом деле не имеет никакого отношения к тому, о чем вы спрашиваете. Я думаю, вам следует избавиться от этого. И проверьте класс SMTP

Ответ №1:

Я думаю, вы можете позвонить

 string myXmlXsltString = Writer.ToString();
 

Чтобы получить ваш xslt, преобразуйте xml в строку. Затем вы можете отправить электронное письмо как обычно, установив тело в виде строки, возвращенной выше, например: сообщение.Body = myXmlXsltString

Комментарии:

1. После того, как вы задали тело сообщения, вам необходимо установить свойство IsBodyHtml: message . IsBodyHtml = true;

Ответ №2:

Отправка электронной почты в .net довольно проста, и отправка электронной почты в формате HTML вместо обычного теста — это всего лишь однострочный переключатель

Вот пример отправки электронной почты с использованием учетной записи gmail, обратите внимание на настройку IsBodyHtml.

 System.Net.NetworkCredential loginInfo = new System.Net.NetworkCredential("xxx@gmail.com", "yyyy");
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.From = new System.Net.Mail.MailAddress("xxx@gmail.com", "Admin");
msg.To.Add(new System.Net.Mail.MailAddress(sTo, sToDisplayName));
msg.Subject = sSubject;
msg.Body = sBody;
msg.IsBodyHtml = true;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.gmail.com");
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = loginInfo;
client.Send(msg);