C# 在asp.net mvc中,邮件发送代码可以在本地工作,但不能在服务器上工作

C# 在asp.net mvc中,邮件发送代码可以在本地工作,但不能在服务器上工作,c#,asp.net-mvc,email,C#,Asp.net Mvc,Email,在asp.net MVC中使用google stmp发送邮件的代码在本地服务器上运行良好,但在远程服务器sage.arvixe.com上出现内部服务器错误500 这是我的控制器代码: string email = "**@**.com"; string password = "***"; MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("my.smtp.se

在asp.net MVC中使用google stmp发送邮件的代码在本地服务器上运行良好,但在远程服务器sage.arvixe.com上出现内部服务器错误500

这是我的控制器代码:

    string email = "**@**.com";
    string password = "***";

    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("my.smtp.server.com");

    mail.From = new MailAddress(email, "Company");
    mail.To.Add("something@gmail.com");
    mail.Subject = "Feedback";

    string body = "CompanyName " + data.CompanyName + "<br/> Contact Person Name " + data.ContactPersonName + "<br/> Designation " + data.Designation + "<br/> EmailID " + data.EmailID + "<br/> MobileCellNo " + data.MobileCellNo + "<br/> OfficePhoneNo " + data.OfficePhoneNo + "<br/> FaxNo " + data.FaxNo + "<br/> Address " + data.Address + "<br/> CityState " + data.CityState + "<br/> PostalCode " + data.PostalCode + "<br/> Country " + data.Country + "<br/> Description " + data.Description + "";
    mail.Body = body;
    mail.IsBodyHtml = true;
    //SmtpServer.UseDefaultCredentials = false;
    SmtpServer.Port =25;
    SmtpServer.Credentials = new System.Net.NetworkCredential(email, password);
    //SmtpServer.EnableSsl = true;
    SmtpServer.Send(mail);
string email=“**@**.com”;
字符串密码=“***”;
MailMessage mail=新的MailMessage();
SmtpClient SmtpServer=新的SmtpClient(“my.smtp.server.com”);
mail.From=新邮件地址(电子邮件,“公司”);
mail.To.Add(“something@gmail.com");
mail.Subject=“反馈”;
string body=“CompanyName”+data.CompanyName+“
联系人姓名”+data.ContactPersonName+“
名称”+data.Designation+“
EmailID”+data.EmailID+“
MobileCellNo”+data.MobileCellNo+“
OfficePhoneNo”+data.OfficePhoneNo+“
FaxNo”+data.FaxNo+“
Address”+data.Address+“
CityState”+data.CityState+“
PostalCode”+data.PostalCode+“
Country”+data.Country+“
Description”+data.Description+”; mail.Body=Body; mail.IsBodyHtml=true; //SmtpServer.UseDefaultCredentials=false; SmtpServer.Port=25; SmtpServer.Credentials=新系统.Net.NetworkCredential(电子邮件、密码); //SmtpServer.EnableSsl=true; 发送(邮件);
对此我不确定,但似乎您必须启用SSL才能正确使用此google服务

也许你会在这方面找到更多的帮助

本教程:


或者此主题:

您好,请尝试此代码,它正在工作

[HttpPost]
    public ActionResult Form(string receiverEmail, string subject,string message)

{
   try
        {

            if (ModelState.IsValid) {
                var senderemail = new MailAddress("xxxxx@gmail.com", "Demo Mail");
                var receiveremail = new MailAddress(receiverEmail, "Receiver");

                var password = "xxxxx";
                var sub = subject;
                var body = message;

                var smtp = new SmtpClient {
                    Host = "smtp.gmail.com",
                    Port = 587,
                    EnableSsl = true,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(senderemail.Address, password)

                };

                using (var mess = new MailMessage(senderemail, receiveremail)
                {
                    Subject = subject,
                    Body = body
                })
                {
                    smtp.Send(mess);
                }

                return View();
            }
        }
        catch(Exception){
            ViewBag.Error = "There is some thing went Wrong";
        }
        return View();
    }
}

您是否需要在邮件服务器中允许服务器的IP地址?将日志添加到代码中。内部服务器错误消息不足以纠正此问题。虽然此代码片段可以解决此问题,但确实有助于提高您文章的质量。请记住,您将在将来回答读者的问题,并且ose人员可能不知道您的代码建议的原因。