在发送到邮件之前更改页面中的标签值
本文关键字:标签 | 更新日期: 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();