2013-09-03 2 views
7

Guten Tag an alle. Ich habe ein Projekt geschrieben, das auf asp.net mvc3 basiert. Ein Teil des Projekts basiert auf dem Senden von E-Mails aus meiner Anwendung.SMTP-Server kann keine E-Mails vom Hosting senden C# asp.net

public void SendEmail(string address, string subject, string message, int id) 
{ 
     string email = "[email protected]"; 
     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); 

} 

Dieser Code funktioniert lokal und sendet perfekt Emails. Aber wenn ich dies auf das Hosting laden, verursacht es einen Fehler

der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert. Die Serverantwort lautete: 5.5.1 Authentifizierung erforderlich.

Ich habe versucht, den Port auf 465 zu ändern, aber dann wird es mir einen tcp_ip Fehler auf dem Hosting bekommen. Und noch eins: Und wenn Benutzer versuchen, E-Mails von diesem Postfach zu senden, sagen Sie mir bitte, dass die Anwendung verdächtig ist. Weil ich in einem Land hosting bin und in einem anderen Land bin.

Ich habe keine Ahnung, was ich als nächstes tun muss. Ich habe versucht, googeln und etwas über 2-Level-Registrierung gefunden, aber verstehe nicht, wie ich es in meiner Methode implementieren muss.

Ich benutze Arvixe Hosting. Vielleicht haben andere die gleichen Probleme?

+1

Haben Sie die tägliche E-Mail-Grenze überschritten? Googles SMTP lässt nur ein paar hundert E-Mails pro Tag zu. Wenn Sie das überschreiten, erhalten Sie die genaue Fehlermeldung, die Sie beschrieben haben. –

+1

Nein, Wie kann ich das Tageslimit überschreiten, wenn ich keine Mail verschicken kann? Und lokal funktioniert alles perfekt – BorHunter

+0

Und alle Mails, die ich heute lokal von diesem Konto nicht mehr als 20 senden – BorHunter

Antwort

1

Bitte loggen Sie sich in Ihrem Gmail-Konto manuell ein und erlauben Sie die IP Ihres Hosting unter Gmail-Einstellungen. Thats, warum ich denke, es funktioniert perfekt auf Ihrem lokalen. Das gleiche passiert mit mir und nachdem dies getan wurde gab es kein Problem.

+0

Bitte können Sie mir sagen, wo ich IP erlauben kann? – BorHunter

+0

Als es mit mir passierte, zeigte Gmail mir einen roten Balken oben nach dem Login und sagte, dass ein unautorisierter Zugriff gemacht wurde, als ich auf diese Leiste klickte, brachte er mich zur Seite, wo er bestätigte, ob du diese Aktivität identifizierst (mit der IP). Ich habe es bestätigt, dann hat es gut funktioniert. – user1512186

+0

Ja, ich mache das gleiche, aber Fehler haben immer noch – BorHunter