在发送到邮件之前更改页面中的标签值

本文关键字:标签 | 更新日期: 2023-09-27 17:53:38

我有这个代码发送邮件通过按钮点击在asp.net

 protected void MailButton_Click(object sender, EventArgs e)
    {
        StreamReader reader = new StreamReader(Server.MapPath("~/AreaManagersMail.aspx"));
        string readFile = reader.ReadToEnd();
        string myString = "";
        myString = readFile;
        MailMessage newMail = new MailMessage();
        newMail.Priority = MailPriority.High;

        newMail.To.Add("test@test.com");
        newMail.Subject = "Libre";
        newMail.Body = myString.ToString();
        newMail.From = new MailAddress("a@test.com");
        newMail.IsBodyHtml = true;
        SmtpClient SmtpSender = new SmtpClient();
        SmtpSender.Port = 25;
        SmtpSender.Host = "elekid";
        SmtpSender.Send(newMail);
        newMail.Dispose();
    }

通过这个我发送格式化的aspx作为我的邮件的正文,我遇到的问题是,我无法编辑邮件areamanagersmmail .aspx内的标签值

中的AreaManagersMail。我试着包含这个代码

protected void Page_Load(object sender, EventArgs e)
{
    AccountableAmountLabel.Text = "test";
}

,但似乎我使用的页面在发送读取流阅读器之前没有首先加载,它只发送我创建的空模板,

你能建议我该怎么做吗?

在发送到邮件之前更改页面中的标签值

问题是您只是将ASPX页读入内存,而不是实际执行该页。

试一试:

StringWriter _writer = new StringWriter();
HttpContext.Current.Server.Execute("AreaManagersMail.aspx", _writer);
MailMessage newMail = new MailMessage();
//other initialisation here    
newMail.Body = _writer.ToString();