C# 不能';不要使用gmail帐户在asp.net中发送电子邮件

C# 不能';不要使用gmail帐户在asp.net中发送电子邮件,c#,asp.net,.net-3.5,gmail,C#,Asp.net,.net 3.5,Gmail,我们可以使用gmail帐户从*localhost*(本地计算机)在asp.net网站上发送电子邮件吗?我正在努力,但没有成功。它在主机上工作正常,但在我的机器上不工作 我的机器上安装了windows server 2003,在例外情况下,我在防火墙中添加了端口587和465。在我的gmail帐户中,我还启用了POP和IMAP。一些人建议使用端口465,另一些人说应该使用端口587。我尝试了这两种方法,结果如下: 使用端口465需要时间,最后给出操作超时的消息。失败 使用端口587它不需要时间,显

我们可以使用gmail帐户从*localhost*(本地计算机)在asp.net网站上发送电子邮件吗?我正在努力,但没有成功。它在主机上工作正常,但在我的机器上不工作

我的机器上安装了windows server 2003,在例外情况下,我在防火墙中添加了端口587和465。在我的gmail帐户中,我还启用了POP和IMAP。一些人建议使用端口465,另一些人说应该使用端口587。我尝试了这两种方法,结果如下:

  • 使用端口465需要时间,最后给出操作超时的消息。失败
  • 使用端口587它不需要时间,显示消息“failuer sending email”,并显示内部预期“无法建立连接,因为目标计算机主动拒绝它72.14.213.109:587”
  • 下面是我的代码,请指导我哪里错了或我应该做什么

    谢谢

    public static bool SendMail(string gMailAccount, string password, string to, string subject, string message)
    {
        try
        {
            NetworkCredential loginInfo = new NetworkCredential(gMailAccount, password);
            MailMessage msg = new MailMessage();
            msg.From = new MailAddress(gMailAccount);
            msg.To.Add(new MailAddress(to));
            msg.Subject = subject;
            msg.Body = message;
            msg.IsBodyHtml = true;
            SmtpClient client = new SmtpClient("smtp.gmail.com");
            client.EnableSsl = true;
            client.UseDefaultCredentials = false;
            client.Credentials = loginInfo;
            client.Port = 587;
            client.Send(msg);
    
            return true;
        }
        catch (Exception e)
        {
    
            return false;
        }
    
    }
    

    我使用smtp.yandex.com。您可能需要更改gmail帐户的设置。

    请尝试以下步骤:添加:

     client.DeliveryMethod = SmtpDeliveryMethod.Network;
    
    如果这没有帮助,您的邮件地址可能不完整,请使用

    var fromAddress = new MailAddress("from@gmail.com", "From Name"); 
    
    在凭证的使用上

    Credentials = new NetworkCredential(fromAddress.Address, ....
    

    希望对我有所帮助

    这个SmtpClient一直为我工作:

    new SmtpClient
         {
            Host = "smtp.gmail.com",
            Port = 587,
            EnableSsl = true,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential("noreply@my_domain.com", "password")
         };
    
    和你的一样


    您是否可以通过其他应用程序通过587端口与smtp.gmail.com联系?可能是那个端口的Telnet?我认为这可能是一个网络问题,尽管你确实说你的防火墙是完全开放的,但这不是你和谷歌之间的唯一一次跳跃。

    Mikhail我应该在我的gmail帐户中更改什么设置?我不知道。看见