【发布时间】:2013-09-17 00:39:24
【问题描述】:
我正在开发一个网站,我需要在客户按下提交按钮后向客户发送邮件。但其次,我不希望客户等到邮件发送完毕,然后他才进入下一页。 当他按下提交按钮时,他应该被重定向到下一页,而在后台发送邮件。
我尝试过异步发送邮件。在下面的代码中,它发送邮件。当操作完成时,它将客户端重定向到 About.aspx。
MailMessage m = new MailMessage();
MailAddress emailsender = new MailAddress(senderemail.Text, "User");
m.From = emailsender;
MailAddress recipient = new MailAddress(dest.Text);
m.To.Add(recipient);
m.Body = message.Text.ToString();
m.Subject = subj.Text;
SmtpClient client = new SmtpClient();
//Add the Creddentials- use your own email id and password
client.Credentials = new System.Net.NetworkCredential(senderemail.Text,password.Text);
client.Port = 587; // Gmail works on this port
client.Host = "smtp.gmail.com";
client.EnableSsl = true; //This enables the SSL
Object usertoken=m;
client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
try
{
client.SendAsync(m, usertoken);
}
catch (Exception ex)
{
Exception ex2 = ex;
string errorMessage = string.Empty;
while (ex2 != null)
{
errorMessage += ex2.ToString();
ex2 = ex2.InnerException;
}
HttpContext.Current.Response.Write(errorMessage);
} // end try
void client_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
MailMessage mail = e.UserState as MailMessage;
Response.Redirect("About.aspx");
if (!e.Cancelled && e.Error != null)
{
lblMessage.Text = "Mail sent successfully";
}
}
【问题讨论】:
标签: asp.net