2016-04-04 8 views
0

Ich habe wie mehrere Dinge versucht:C#: Fehler Mail Abschicken

  • Verwenden Sie verschiedene Variationen, Häfen, SSL oder ausschalten, ...
  • Ein anderer Mail-Dienstanbieter
  • Rahmen die "weniger sichere Apps zulassen" in meinen Google Mail-Konto-Einstellungen

Frage:

  • Wie kann ich diesen Fehler beheben und Anhänge erfolgreich senden?
  • Was verursacht diesen Fehler?
  • Liegt es daran, dass der Port möglicherweise blockiert ist?

Fehler:

Exception thrown: 'System.IO.IOException' in System.dll 
Exception thrown: 'System.Net.Mail.SmtpException' in System.dll 
System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: Unable to read data from the transport connection: net_io_connectionclosed. 
    at System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine) 
    at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine) 
    at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller) 
    at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) 
    at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) 
    at System.Net.Mail.SmtpClient.GetConnection() 
    at System.Net.Mail.SmtpClient.Send(MailMessage message) 
    --- End of inner exception stack trace --- 
    at System.Net.Mail.SmtpClient.Send(MailMessage message) 
    at TreeView.TreeView.<Email>d__28.MoveNext() in C:\Users\Alexander\Documents\Visual Studio 2015\Projects\TreeView\TreeView\TreeView\TreeView.cs:line 365 

Code:

public void Email() 
{ 
    try 
    { 
     SmtpClient client = new SmtpClient() 
     { 
      Host = @"smtp.gmail.com", 
      Port = 465, 
      Credentials = new NetworkCredential(@"[email protected]", @"Password"), 
      UseDefaultCredentials = false, 
      DeliveryMethod = SmtpDeliveryMethod.Network, 
      EnableSsl = true 
     }; 

     MailMessage message = new MailMessage() 
     { 
      From = new MailAddress(@"[email protected]"), 
      Subject = @"Test", 
      Body = @"Test", 
      Priority = MailPriority.Normal 
     }; 

     message.To.Add(@"[email protected]"); 
     Attachment file = new Attachment(@"C:\Users\Alexander\Documents\File.txt"); 
     message.Attachments.Add(file); 

     client.Send(message); 
    } 
    catch { } 
} 
+0

können Sie versuchen, 587-Port –

+0

... und versuchen, die 'deliveryMethod = SmtpDeliveryMethod.Network' Linie Kommentierung aus. –

+0

Ich habe das versucht, funktioniert immer noch nicht. – HovyTech

Antwort

1

Für gmail Ich habe

SmtpClient client = new SmtpClient(); 
client.Host = "smtp.gmail.com"; 

client.Port = 587; 

client.EnableSsl = true; 
client.Credentials = new NetworkCredential("[email protected]", "mygmailpassword"); 
       ////email.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network ; 

PS Möglicherweise müssen Sie dies ermöglichen

https://support.google.com/accounts/answer/6010255?hl=en

APPEND:

Herunterladen dieses Tool:

https://www.microsoft.com/en-us/download/details.aspx?id=24009

Und sehen, wenn Sie diesen Port abfragen/Adresse

ich die folgenden Ergebnisse erhalten:

============================================= 

*Starting portqry.exe -n smtp.gmail.com -e 587 -p TCP ... 
Querying target system called: 
smtp.gmail.com 
Attempting to resolve name to IP address... 
Name resolved to 74.125.29.109 
querying... 
TCP port 587 (unknown service): LISTENING 
portqry.exe -n smtp.gmail.com -e 587 -p TCP exits with return code 0x00000000.* 
+0

Versenden Sie OHNE den Anhang zuerst ... um zu überprüfen, ob die Einstellungen korrekt sind. Dann debugge mit den Anhängen. – granadaCoder

+0

Funktioniert immer noch nicht. – HovyTech

+0

Er hat bereits versucht, die "Weniger sicheren Apps" zu aktivieren, heißt es im dritten Punkt seiner Frage. :) –