如何将网页作为电子邮件发送?

时间:2011-07-30 06:25:05

标签: c# asp.net-3.5

我想发送电子邮件,它的内容应该是一个设计良好的aspx页面。但是aspx页面不应该作为Hyper-Link发送,它应该显示为消息Content?

如果ay suggeions请回复...

穆罕默德

3 个答案:

答案 0 :(得分:4)

您可以将页面的html变为带有Web请求的字符串,如下所示:

WebRequest request;
string text;
        string url = "UrlToGet";
        request = (HttpWebRequest)
            WebRequest.Create(url);
        using (WebResponse response = request.GetResponse())
        {
            using (StreamReader reader =
                new StreamReader(response.GetResponseStream()))
            {
                text = reader.ReadToEnd();
            }
        }

答案 1 :(得分:0)

aspx页面由服务器解释并呈现为Java脚本和html。 在那种情况下谁会这样做?这(目前)是不可能的。

你唯一能做的就是得到html并用html写你的信息 - 所以你有外观而不是功能。

HTH

马里奥

答案 2 :(得分:0)

你可以这样做......

private void Page_Load(object sender, System.EventArgs e)
{
    MailMessage mail = new MailMessage();
    mail.To = "me@mycompany.com";
    mail.From = "you@yourcompany.com";
    mail.Subject = "this is a test email.";
    string url = "http://www.microsoft.com";
    mail.Body = HttpContent( url );
    mail.BodyFormat = MailFormat.Html;
    mail.UrlContentBase = url;
    SmtpMail.SmtpServer = "localhost";  //your real server goes here
    SmtpMail.Send( mail );
}
//screen scrape a page here
private string HttpContent( string url )
{
    WebRequest objRequest= System.Net.HttpWebRequest.Create(url);
    StreamReader sr =  new StreamReader( objRequest.GetResponse().GetResponseStream() );  
    string result = sr.ReadToEnd();
    sr.Close();
    return result;
}