Entwickler-Ecke
Netzwerk - E-Mail Funktion
sharpx - Do 01.01.09 16:53
Titel: E-Mail Funktion
Hallo liebe Community,
Folgender Code gibt mir zig hundert Fehler:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| using System; using System.IO; using System.Web; using System.Net.Mail;
namespace mailtest { class Program { public static void Main(string[] args) { MailMessage Message = new MailMessage(); string test = "test"; Message.From = test; Message.To = "fendalex@vol.at"; Message.Subject = "test"; Message.Body = "test"; Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret"); Console.WriteLine("E-Mail übertragen..."); SmtpMail.SmtpServer = "pop.gmx.net"; SmtpMail.Send(Message); Console.WriteLine("E-Mail wurde übertragen."); Console.Read();
} } } |
Zitat: |
Der Typ string kann nicht implizit in System.Net.Mail.MailAddress konvertiert werden. (CS0029) - C:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\mailtest\Program.cs:19,21
Der Typ string kann nicht implizit in System.Net.Mail.MailAddressCollection konvertiert werden. (CS0029) - C:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\mailtest\Program.cs:20,19
Für die Eigenschaft oder den Indexer System.Net.Mail.MailMessage.To kann keine Zuweisung ausgeführt werden. Sie sind schreibgeschützt. (CS0200) - C:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\mailtest\Program.cs:20,6
System.Net.Mail.MailMessage enthält keine Definition für Fields. (CS0117) - C:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\mailtest\Program.cs:23,14
System.Net.Mail.MailMessage enthält keine Definition für Fields. (CS0117) - C:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\mailtest\Program.cs:24,14
System.Net.Mail.MailMessage enthält keine Definition für Fields. (CS0117) - C:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\mailtest\Program.cs:25,14
Der Name SmtpMail ist im aktuellen Kontext nicht vorhanden. (CS0103) - C:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\mailtest\Program.cs:28,6
Der Name SmtpMail ist im aktuellen Kontext nicht vorhanden. (CS0103) - C:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\mailtest\Program.cs:29,6
|
Dann ahbe ich mal folgendes installiert:
.net framework 3.5 sp1 + neuste sharpdev. version und dsa ding kompiliert ohne fehler
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| public static void Main(string[] args) { MailMessage Message = new MailMessage(); string test = "test"; Message.From = test; Message.To = "a.f@vol.at"; Message.Subject = "test"; Message.Body = "test"; Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "user"); Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "pass"); Console.WriteLine("E-Mail übertragen..."); SmtpMail.SmtpServer = "pop.vol.at"; SmtpMail.Send(Message); Console.WriteLine("E-Mail wurde übertragen."); Console.ReadLine();
} |
Gibt mir jedoch folgende Fehler:
Zitat: |
System.Web.HttpException: Der Transport konnte keine Verbindung zum Server herstellen.
---> System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.Runtime.InteropServices.COMException: Der Transport konnte keine Verbindung zum Server herstellen.
bei LateBoundAccessHelper.CallMethod
bei CdoSysHelper.Send
bei System.Web.Mail.SmtpMail.Send
bei mailtest.Program.Main in c:\Dokumente und Einstellungen\lipo\Desktop\SharpDevelop Projects\mailtest\Program.cs:Zeile 29
|
Ich sehe da aber keinen Sinn, da es möglich ist auf SMTP und POP von ausen zuzugreifen!
Zitat: |
telnet pop.vol.at 110
+OK vol.at POP3 Server 4.1.8 bereit <26140872.1230637429@stalker1.tele.net>
telnet pop.vol.at 25
Verbindung ok
|
Danke für Eure Hilfe!
Moderiert von
UGrohne: Code- durch C#-Tags ersetzt
jaenicke - Do 01.01.09 16:58
Hallo und :welcome:!
Was mir auffällt ist, dass du keinen Port festlegst. Ich gehe davon aus, dass das gemacht werden muss.
Wie steht sicherlich in der Doku.
// EDIT:
Nein, muss man offenbar nicht. Das einzige was mir
in der Doku [
http://msdn.microsoft.com/de-de/library/system.web.mail.smtpmail(VS.80).aspx] zunächst sofort aufgefallen ist, ist, dass SmtpMail veraltet ist und nicht mehr verwendet werden sollte.
UGrohne - Do 01.01.09 17:05
Yapp, verwende SmptClient statt SmtpMail, das sollte die Sache vielleicht beheben.
UGrohne - Do 01.01.09 17:17
Nein, Port 25 ist SMTP, Port 110 ist POP3. Es gibt noch die TLS-verschlüsselten Alternativen auf 465 bzw. 995.
Außerdem ist Deine Verwendung von MailMessage nicht ganz korrekt, schau mal am Besten in die MSDN rein, da gibts ein gutes Beispiel zur Klasse MailMessage.
sharpx - Do 01.01.09 18:03
UGrohne hat folgendes geschrieben : |
Nein, Port 25 ist SMTP, Port 110 ist POP3. Es gibt noch die TLS-verschlüsselten Alternativen auf 465 bzw. 995.
Außerdem ist Deine Verwendung von MailMessage nicht ganz korrekt, schau mal am Besten in die MSDN rein, da gibts ein gutes Beispiel zur Klasse MailMessage. |
Kannst du mir ein Beispiel zeigen?
Ja Port 25 = SMTP
und Port 110 = POP3
Bezieht sich lediglich darauf ob emails gesendet oder empfangen werden sollten.
Verschlüsselt wäre es TLS bzw. SSL bzw. andere Verfahren, die vom Server unterstützt werden.
UGrohne - Do 01.01.09 19:24
Hier, sogar mit Authentifizierung ;)
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| MailMessage msg = new MailMessage(); msg.From = new MailAddress("EMail1"); msg.To.Add(new MailAddress("EMail2")); msg.Subject = "Testmail"; msg.Body = "Dies ist eine Testmail";
SmtpClient client = new SmtpClient(); client.Host = "Mailserver"; client.Credentials = new NetworkCredential("Benutzername", "Passwort"); client.Send(msg); |
sharpx - So 04.01.09 14:42
Hallo,
Bin leider erst jetzt zum testen gekommen.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| using System; using System.IO; using System.Net; using System.Net.Mail;
namespace teset { class Program { public static void Main(string[] args) { MailMessage msg = new MailMessage(); msg.From = new MailAddress("EMail1@test.de"); msg.To.Add(new MailAddress("f.a@vol.at")); msg.Subject = "Testmail"; msg.Body = "Dies ist eine Testmail";
SmtpClient client = new SmtpClient(); client.Host = "pop.vol.at"; client.Credentials = new NetworkCredential("user", "pass"); client.Send(msg); } } } |
Bekomme folgenden Fehler:
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.SmtpClient.Send
at teset.Program.Main in c:\Documents and Settings\Owner\My Documents\SharpDevelop Projects\teset\teset\Program.cs:line 30
Moderiert von
UGrohne: Beitragsformatierung überarbeitet.
sharpx - So 04.01.09 15:07
Mein Fehler habe aus Versehen pop.vol.at anstatt von smtp.vol.at geschrieben.
Der Code hat ansonsten funktioniert.
Danke für eure Hilfe
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!