SMTP服务器可以';t从托管c#asp.net发送电子邮件

SMTP服务器可以';t从托管c#asp.net发送电子邮件,c#,asp.net,asp.net-mvc-3,email,hosting,C#,Asp.net,Asp.net Mvc 3,Email,Hosting,大家好。我已经写了一个基于asp.NETMVC3的项目。项目的一部分是基于从我的应用程序发送电子邮件 public void SendEmail(string address, string subject, string message, int id) { string email = "emailname@gmail.com"; string password = "somepassword"; var loginInfo = new Ne

大家好。我已经写了一个基于asp.NETMVC3的项目。项目的一部分是基于从我的应用程序发送电子邮件

public void SendEmail(string address, string subject, string message, int id)
{
        string email = "emailname@gmail.com";
        string password = "somepassword";

        var loginInfo = new NetworkCredential(email, password);
        var msg = new MailMessage();
        var smtpClient = new SmtpClient("smtp.gmail.com", 587);

        msg.From = new MailAddress(email);
        msg.To.Add(new MailAddress(address));
        msg.Subject = subject;
        msg.Body = message;
        msg.IsBodyHtml = true;
        msg.Attachments.Add(new Attachment(Server.MapPath("~/Content/StudentPdf/student" + id + ".pdf")));

        smtpClient.EnableSsl = true;
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = loginInfo;
        smtpClient.Send(msg);

}
此代码在本地工作,完美地发送电子邮件。但是当我上传到主机时,它会导致一个错误

SMTP服务器需要安全连接,或者客户端未连接 认证的。服务器响应为:需要5.5.1身份验证

我已经尝试将端口更改为465,但是在主机上会出现tcp_ip错误。还有一点:当用户试图从这个邮箱发送电子邮件时,谷歌会告诉我应用程序上的可疑活动。这是因为我的主机在一个国家,我在另一个国家

我不知道下一步要做什么。我尝试过谷歌搜索,发现了一些关于2级注册的东西,但不明白我需要如何在我的方法中实现它


我正在使用arvixe主机。也许其他人也有同样的问题?

请手动登录您的gmail帐户,并在gmail设置下允许您的主机IP。这就是为什么我认为它在您的本地主机上工作得很好的原因。
我也是这样,这样做之后就没有问题了。

您是否超过了每日电子邮件的限制?谷歌的SMTP每天只允许发送几百封电子邮件。当你超过这个值时,你会收到你描述的错误信息。不,如果我不能发送任何邮件,我怎么能超过每日限制?在本地,一切都很好,我今天从这个帐户在本地发送的所有邮件都不超过20封,而不是var msg尝试MailMessage msg,并用smtpClient smtpClient替换var smtpClient smtpClient并尝试。我尝试了,但什么也没发生。同样的错误,请告诉我在哪里可以允许ip?当我发生这种情况时,gmail在登录后在顶部显示了一个红色条,告诉我进行了未经授权的访问,当我点击该条时,我进入页面,确认您是否识别了此活动(使用ip),我确认了它,谷歌仍然在日志中写道,来自应用程序或设备的登录尝试被锁定,但没有标记,只在日志中写入。