C# .Net通过Gmail发送邮件

C# .Net通过Gmail发送邮件,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,可能重复: 我正试图通过我创建的GMail帐户用Asp.Net(MVC3)发送邮件。我已经在互联网上搜索了一些操作指南,但我尝试过的方法都不管用 我有一个这样的方法 public static bool SendEmail(string to,string subject,string body) { try { MailMessage mail = new MailMessage(); mail.From

可能重复:

我正试图通过我创建的GMail帐户用Asp.Net(MVC3)发送邮件。我已经在互联网上搜索了一些操作指南,但我尝试过的方法都不管用

我有一个这样的方法

public static bool SendEmail(string to,string subject,string body)
    {
        try
        {
            MailMessage mail = new MailMessage();
            mail.From = new MailAddress("myaccount@gmail.com");
            mail.To.Add(to);
            mail.Subject = subject;
            mail.Body = body;
            mail.IsBodyHtml = false;

            SmtpClient smtp = new SmtpClient();
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.Host = "smtp.gmail.com";
            smtp.Port = 587;
            smtp.Credentials = new System.Net.NetworkCredential("myaccount@gmail.com", "mypassword");
            smtp.EnableSsl = true;
            smtp.Send(mail);
            return true;
        }
        catch
        {
            return false;
        }
    }
此方法在im使用时返回false。如何解决此问题?

尝试添加此行

 smtp.UseDefaultCredentials = false;

我验证了以下工作:

static void Main(string[] args)
{
    //create the mail message
    MailMessage mail = new MailMessage();

    var client = new SmtpClient("smtp.gmail.com", 587)
    {
        Credentials = new NetworkCredential("your.email@gmail.com", "yourpassword"),
        EnableSsl = true
    };

    //set the addresses
    mail.From = new MailAddress("your.email@gmail.com");
    mail.To.Add("to@wherever.com");

    //set the content
    mail.Subject = "Test subject!";
    mail.Body = "<html><body>your content</body></html>";
    mail.IsBodyHtml = true;
    client.Send(mail);
}
static void Main(字符串[]args)
{
//创建邮件消息
MailMessage mail=新的MailMessage();
var client=new-SmtpClient(“smtp.gmail.com”,587)
{
凭据=新的网络凭据(“您的。email@gmail.com“,“您的密码”),
EnableSsl=true
};
//设置地址
mail.From=新邮件地址(“您的。email@gmail.com");
mail.To.Add(“to@wherever.com");
//设置内容
mail.Subject=“测试主题!”;
mail.Body=“您的内容”;
mail.IsBodyHtml=true;
客户端。发送(邮件);
}

用catch(异常e)替换catch,然后设置断点,看看是什么错误。您尝试过这个吗?您(和/或webapp的)防火墙上的出站端口587是否打开?您可以从不接受异常开始。然后阅读重复问题的答案。