发送电子邮件asp.net C#Windows7 32位

时间:2013-04-30 04:59:47

标签: c# asp.net smtp smtpclient

我正在尝试从Windows7中的asp.net发送电子邮件。经过几个小时的谷歌搜索后,我发现Windows 7中没有SMTP服务器。我已经尝试了以下一段代码并出现了一个主要错误“无法建立连接,因为目标机器主动拒绝了它74.125.25.109:587”

代码:1

 private void sendmail()
    {
        string email = "mymail@gmail.com";
        string password = "mygmail_password";

        var loginInfo = new NetworkCredential(email, password);
        var msg = new System.Net.Mail.MailMessage();
        var smtpClient = new SmtpClient("smtp.gmail.com", 587);

        msg.From = new MailAddress(email);
        msg.To.Add(new MailAddress("recipient@gmail.com"));
        msg.Subject = "my mail subject";
        msg.Body = "my mail body";
        msg.IsBodyHtml = true;

        smtpClient.EnableSsl = true;
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = loginInfo;
        smtpClient.Send(msg);
    }

代码:2

private void sendthemail()
    {
        System.Net.Mail.MailMessage mailObj = new System.Net.Mail.MailMessage(
         txtFrom.Text,txtEmail.Text,txtSubject.Text, txtBody.Text);
        SmtpClient SMTPServer = new SmtpClient("localhost");
        try
        {
            SMTPServer.Send(mailObj);

            SMTPServer.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;

            SMTPServer.PickupDirectoryLocation = "C:\\inetpub\\mailroot\\Pickup";

            SMTPServer.Host = "127.0.0.1"; // localhost

            SMTPServer.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            Label1.Text = "Mail sent";
        }
        catch (Exception ex)
        {
            Label1.Text = ex.ToString();
        }
    }

My aspx looks like:

My IIS looks like this:

Stack trace: 我的问题是:

- 我是否需要一台SMTP服务器使用gmail通过ASP.Net发送邮件?

- 我有什么需要下载的吗?

- 我应该在代码中添加任何内容吗?

- 如何检测系统中正在运行的SMTP服务器?

我已经下载了很多应用程序,例如hMailServer,Smtp4dev,Windows SMTP服务器,不知道该怎么做。请帮助!!

2 个答案:

答案 0 :(得分:1)

不,因为您使用的是System.Net.Mail类,并且您在代码中提供了gmail.smpt服务器。 无需下载 您可以检入您的服务(services.msc)smtp服务器服务正在运行。

当您尝试发送电子邮件时,请向您发送错误,这将有助于找出真正的问题。

答案 1 :(得分:1)

您是否在gmail帐户上明确启用了smtp。据我所知,在你可以使用它之前需要启用它。 我建议你先检查一下gmail中的设置,因为你的代码看起来很好。

我也尝试删除端口号。因为您使用的是EnableSSL属性,所以不需要它。

var smtpClient = new SmtpClient(“smtp.gmail.com”);

- 我是否需要一台SMTP服务器使用gmail通过ASP.Net发送邮件? - 您确实需要SMTP服务器,但不需要在本地计算机上安装它。

- 有什么我必须下载的吗? - 不。

- 我应该在代码中添加任何内容吗? - 尝试更改上面的行。

- 如何检测系统中正在运行的SMTP服务器? - 检查系统上运行的服务,看看那里是否有SMTP服务器。