2016-04-25 13 views
0

enter image description here Ich versuche zu lernen, wie man eine einfache E-Mail mit C# Visual Studio Forms Application sendet. (Es könnte auch eine Konsolenanwendung sein, die mich interessiert). Hier ist der Code, ich habe (ich sehe nicht, was mit dem Code falsch ist, sollte es richtig?):Senden einer E-Mail aus einer Formularanwendung

using System.Net.Mail; 
namespace WindowsFormsApplication1 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      MailMessage mail = new MailMessage(); 
      SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 

      mail.From = new MailAddress("(here is my email)"); 
      mail.To.Add("(here is my email)"); 
      mail.Subject = "toja"; 
      mail.Body = "ja"; 

      SmtpServer.Port = 587; 
      SmtpServer.Credentials = new System.Net.NetworkCredential("(here is my email)", "(here is my password)"); 
      SmtpServer.EnableSsl = true; 

      SmtpServer.Send(mail); 
      MessageBox.Show("mail Send"); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
    } 

} 

}

+0

Woher wissen Sie, dass es nicht funktioniert hat? Was ist der Fehler? – randominstanceOfLivingThing

+0

Ich kann Ihnen nicht den ganzen Fehler zeigen, weil ich es nicht kopieren kann, aber hier sind die ersten Zeilen: "System.Net.Mail.SmtpException: Der SMTP-Server führt eine sichere Verbindung neu oder der Client wurde nicht autorisiert. Der Server Antwort war: 5.5.1 Authentifizierung " –

+0

Von dieser [Seite] (https://support.google.com/mail/answer/78775?hl=de), Wenn Sie versucht haben, Ihren SMTP-Server auf Port 465 zu konfigurieren (mit SSL/TLS) und Port 587 (mit STARTTLS), aber weiterhin Probleme beim Senden von E-Mails haben, versuchen Sie, Ihr SMTP so zu konfigurieren, dass Port 25 (mit SSL/TLS) verwendet wird. – randominstanceOfLivingThing

Antwort

0

Ich verwende die folgende E-Mail senden von C# Forms-Anwendung und es funktioniert. Vielleicht sollten Sie versuchen, die Eigenschaft smtp.UseDefaultCredentials = false hinzuzufügen und die Eigenschaft Credentials festzulegen?

// Create our new mail message 
MailMessage mailMessage = new MailMessage(); 
mailMessage.To.Add("toAddress"); 
mailMessage.From = new MailAddress("fromAddress"); 
mailMessage.Subject = "subject"; 
mailMessage.Body = "body"; 

// Set the IsBodyHTML option if it is HTML email 
mailMessage.IsBodyHtml = true; 

// Enter SMTP client information 
SmtpClient smtpClient = new SmtpClient("mail.server.address"); 
NetworkCredential basicCredential = new NetworkCredential("username", "password"); 
smtpClient.UseDefaultCredentials = false; 
smtpClient.Credentials = basicCredential; 
smtpClient.Send(mailMessage); 

Wenn Google Mail verwenden, können Sie die SMTP-Server Informationen hier https://support.google.com/a/answer/176600?hl=en finden. Es sieht so aus, als wäre die Adresse smtp.gmail.com und der Port ist 465 für SSL oder für TLS. Ich schlage vor, dass Sie zuerst den Standard-Port 25 verwenden, um sicherzustellen, dass Ihre E-Mail-Adresse durchgeht, und dann gegebenenfalls auf einen anderen Port umstellen.

+0

Ich habe versucht, mit Ihrem Code und den beiden "NetworkCredentials "in dieser Zeile: NetworkCredential basicCredential = new NetworkCredential (" Benutzername "," Passwort "); sind ein Fehler, wie mache ich das wieder? Ich fühle mich, als ob ich etwas sehr obvius vermisse und das ist, was mich so stört. –

+0

Sie wahrscheinlich benötigen die folgenden Importe ... mit System.Security.Cryptography; mit System.Net; mit System.Net.Mail; mit System.Net.Mime; – Phil

+0

Wenn ich auf den Button klicke, erscheint ein Fehler. Ich denke, es hat etwas mit dem Hafen zu tun. Welchen Port sollte ich verwenden? –