如何立即在c#中发送邮件或至少在后台执行它

时间:2014-06-22 10:56:42

标签: c# asp.net email smtp

我正在使用smtp客户端和c#的邮件消息类来发送邮件。邮件一次发送给一个或最多两个用户。但是,邮件发送过程很慢。发送邮件大约需要5-8秒。到这时,页面仍处于空闲状态。在asp.net c#中是否有办法立即发送邮件或至少重定向到另一个页面并在后台执行邮件发送操作,以便用户不会感到延迟。有什么建议!!我已经对smtpclient.sendmailAsync进行了研究,但在使用此属性时,邮件未发送..提前感谢

1 个答案:

答案 0 :(得分:0)

        Task sendEmail = new Task(() =>
        {
            //create the mail message
            MailMessage mail = new MailMessage();

            //set the addresses
            mail.From = new MailAddress("me@mycompany.com");
            mail.To.Add("you@yourcompany.com");

            //set the content
            mail.Subject = "This is an email";
            mail.Body = "this is a sample body";

            //send the message
            SmtpClient smtp = new SmtpClient();
            smtp.Port = 465;
            smtp.UseDefaultCredentials = true;

            smtp.Host = "smtp.gmail.com";

            smtp.EnableSsl = true;
            smtp.Credentials = new NetworkCredential("youGmailAddress@gmail.com", "YourPassword");  

            smtp.Send(mail);
        });

        sendEmail.Start();