C# 无法在服务器上使用SMTP发送电子邮件

C# 无法在服务器上使用SMTP发送电子邮件,c#,email,smtpclient,C#,Email,Smtpclient,我使用smtp客户端发送电子邮件,但问题是,当我尝试从本地系统发送电子邮件时,电子邮件成功发送,但我部署在服务器上,而不是电子邮件未发送。这是我的密码 try { MailMessage mail = new MailMessage(); mail.To.Add(receiver); mail.From = new MailAddress("lms.mannconsultant@gmail.com");

我使用smtp客户端发送电子邮件,但问题是,当我尝试从本地系统发送电子邮件时,电子邮件成功发送,但我部署在服务器上,而不是电子邮件未发送。这是我的密码

 try
        {
            MailMessage mail = new MailMessage();
            mail.To.Add(receiver);
            mail.From = new MailAddress("lms.mannconsultant@gmail.com");
            mail.Subject = subject;
            mail.Body = body;
            mail.IsBodyHtml = true;
            if (attachment != null)
            {
                mail.Attachments.Add(attachment);
            }
            SmtpClient smtp = new SmtpClient();
            smtp.Host = "smtp.gmail.com";
            smtp.Credentials = new System.Net.NetworkCredential("xxxxx@gmail.com", "xxxxxx");
            smtp.EnableSsl = true;
            smtp.UseDefaultCredentials = false;
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.Port = 587;
            smtp.Send(mail);
            return true;
        }
        catch
        {
            return false;
        }

这可能有很多原因。通过查看您的代码,我建议您首先验证在服务器中执行此代码时是否生成任何异常(日志异常)。这将有助于进一步调查。此外,请检查您在代码中使用的端口(587)是否未被服务器防火墙阻止(如果在服务器中启用)

您是否尝试过在您的google帐户上启用对不太安全的应用程序的访问?是的,已启用。如果您可以使用相同的代码从本地系统发送电子邮件,但无法从服务器发送,则问题似乎不在您的代码中。问题可能在于如何调用服务器上的方法,或者服务器如何连接到internet(可能是防火墙问题)。