0

我正在尝试从 Windows7 中的 asp.net 发送电子邮件。经过数小时的谷歌搜索后,我发现 SMTP 服务器在 Windows 7 中不可用。我尝试了以下代码并出现一个主要错误“无法建立连接,因为目标机器主动拒绝它 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();
        }
    }

我的 aspx 看起来像:

我的 IIS 看起来像这样:

堆栈跟踪: 我的问题是:

- 我需要一个 SMTP 服务器来使用 gmail 通过 ASP.Net 发送邮件吗?

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

- 有什么我应该添加到我的代码中的吗?

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

我已经下载了很多应用程序,例如 hMailServer,Smtp4dev,Windows SMTP 服务器,不知道如何处理它。请帮助!

4

2 回答 2

1

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

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

于 2013-04-30T06:40:47.507 回答
1

您是否在您的 gmail 帐户上明确启用了 smtp。据我所知,这需要先启用才能使用它。我建议您先检查 gmail 中的设置,因为您的代码看起来还不错。

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

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

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

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

- 有什么我应该添加到我的代码中的吗?– 尝试更改上面的行。

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

于 2013-05-01T02:31:50.027 回答