Отправка HTML-писем с использованием кода C # - PullRequest
0 голосов
/ 31 октября 2011

Я использовал следующий код для преобразования 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:\Dibya\svnlog.xml) ;

        XslTransform XslTrans = new XslTransform() ;

        //load the Xsl 
        XslTrans.Load(C:\Dibya\svnlog.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);
    }

    }

Ответы [ 2 ]

0 голосов
/ 31 октября 2011

Отправка электронной почты довольно проста в .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);
0 голосов
/ 31 октября 2011

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

string myXmlXsltString = Writer.ToString();

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...