2012-04-14 7 views
0

Also wollte ich versuchen, mir einige Mail mit einer Visual C# -Anwendung zu senden, aber es scheint nur durch den Code zu laufen (ich weiß, weil ich es setze ein Meldungsfeld am Ende des Codes) und nichts senden. Ich habe die E-Mail-Informationen aus offensichtlichen Gründen geändert.Versucht, Mail in C# zu senden, aber es scheint nicht zu funktionieren

Hier ist, was ich habe:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Net.Mail; 
using System.Net; 

namespace WindowsFormsApplication9 
{ 
    public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     string Host = "smtp.live.com"; 
     Int16 Port = 587; 
     bool SSL = true; 
     string Username = "[email protected]"; 
     string Password = "mypassword"; 

     // Mail options 
     string To = "[email protected]"; 
     string From = "[email protected]"; 
     string Subject = "This is a test"; 
     string Body = "It works!"; 

     MailMessage mm = new MailMessage(From, To, Subject, Body); 
     SmtpClient sc = new SmtpClient(Host, Port); 
     NetworkCredential netCred = new NetworkCredential(Username, Password); 
     sc.EnableSsl = SSL; 
     sc.UseDefaultCredentials = false; 
     sc.Credentials = netCred; 

     MessageBox.Show("Test"); 
    } 
} 
} 

* Hinweis, ich habe keine Fehler von diesem erhalten.

+3

HINWEIS: Sie richten alle Informationen (Host, von, bis, Betreff, Körper), legen Sie die Anmeldeinformationen und alles, was gut aussieht. Wo genau schickst du eigentlich ** die Post? (Ein weiterer Hinweis: Es sollte mehr zwischen 'sc.Credentials = netCred;' und 'MessageBox.Show (" Test ");'.) Sein. –

+1

Nur realisiert, dass ich vergessen habe, die Nachricht tatsächlich zu senden. Nun, um das herauszufinden. – Hexo

+0

Gut. Hast du angefangen? Jetzt kann ich eine Antwort schreiben, wenn du zurückkommst. :) –

Antwort

2

Sie senden die Post nicht wirklich.

Fügen Sie diese auf Ihren Code - Sie sollten in der Lage sein, um herauszufinden, wo:

sc.Credentials = netCred; 

try 
{ 
    sc.Send(message); 
} 
catch (Exception ex) 
{ 
    MessageBox(ex.ToString());    
}    
MessageBox.Show("Test"); 
+0

+1, aber um dem Beispiel des OPs zu entsprechen, sollte es 'sc.Send (Nachricht);' – Robbie

+0

Guter Fang sein. Fest. –

+0

Danke, schätze die Hilfe sehr (Ich habe es zur Arbeit, woohoo. Jetzt Anhänge zu implementieren: D) Ich weiß nicht, warum ich stmpclient obwohl versuchte. – Hexo

-1

diese Namensräume Hinzufügen ...

using System.Net.Mail; 
using System.Net; 
using System.Configuration; 

Fügen Sie die folgenden Zeilen Code in Codebehind-Datei wo möchten Sie eine E-Mail senden.

System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage("yourEmailId", "destinationEmailId"); 
mail.Subject = ""; //Enter the text for the subject of the mail in quotes. 
mail.Body = ""; //Enter the text for the body of mail within the quotes. 
mail.IsBodyHtml = true; 
SmtpClient client = new SmtpClient("smtp.live.com"); 
NetworkCredential cred = new NetworkCredential("yourEmailId", "yourPassword"); 
client.EnableSsl = true; 
client.Credentials = cred; 
try 
{ 
client.Send(mail); 
} 
catch (Exception) 
{ 
} 
+0

das ist nicht gut lesbar – Robbie

+1

Hier ist viel Lärm, das ist nicht notwendig. Das OP hatte alle relevanten Informationen mit Ausnahme einer einzigen Codezeile (wenn Sie das "try..catch" weglassen. Es ist schwer zu lesen, weil das zusätzliche Rauschen die tatsächliche Lösung schwer zu finden macht. –

Verwandte Themen