我正在开发一个网站,我需要在按下提交按钮后向客户端发送邮件。但其次,我不希望客户端等到发送邮件,然后再发送邮件他被推进到下一页。 只要他按下提交按钮,他应该被重定向到下一页,而在后台发送邮件。在后台发送邮件来自asp.net
我试过异步发送邮件。在下面的代码中,它发送邮件。当操作完成时,它将客户端重定向到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";
}
}
我已经尝试过,但它仍然等待发送邮件。发送邮件后,它只重定向到“About.aspx” – Ishan