Hallo,
ich will einen POP3 Email Client schreiben der Emails im Postfach von gmx.de oder web.de auslesen kann und nach einem bestimmten muster auswertet (auswertung hat nichts mit der Frage zu tun).
Da ich nicht wusste wie man bei so einem programm beginnt habe ich bisschen gegoogled copy paste und ausprobiert...
Nun habe ich einen Code der Funktioniert. Ich kann mich zum Web.de Mailserver connnecten.
Jedoch wenn ich über meinen NetworkStream Daten senden will bekomme ich als Antwort von web.de dass ich meine Anfragen SSL verschlüsseln soll.
Im internet habe ich dann die Klasse SslStream gefunden und gleich meinen Quelltext demensprechend verändert.
Das Problem liegt jetz in der folgenden Zeile:
Wenn der Debugger hier ankommt bricht er die Connect methode ab und öffnet einfach die Form obwohl er noch nicht fertig ist mit dem Load Event. Es wird auch keine fehlermeldung oder ähnliches angezeigt.
Ich habe das Gefühl dass ich den SslStream nicht einfach als Networkstream verwenden kann.
Weiß jemand wie ich einen Ssl Verschlüsselten Networkstream bekomme?
Oder muss ich Den SslStream an den Networkstream weiterleiten oder so?
Lg
Kiname
ich will einen POP3 Email Client schreiben der Emails im Postfach von gmx.de oder web.de auslesen kann und nach einem bestimmten muster auswertet (auswertung hat nichts mit der Frage zu tun).
Da ich nicht wusste wie man bei so einem programm beginnt habe ich bisschen gegoogled copy paste und ausprobiert...
Nun habe ich einen Code der Funktioniert. Ich kann mich zum Web.de Mailserver connnecten.
Jedoch wenn ich über meinen NetworkStream Daten senden will bekomme ich als Antwort von web.de dass ich meine Anfragen SSL verschlüsseln soll.
Im internet habe ich dann die Klasse SslStream gefunden und gleich meinen Quelltext demensprechend verändert.
Das Problem liegt jetz in der folgenden Zeile:
Code:
StreamListenerSSL = new StreamReader(POP3StreamSSL);
Ich habe das Gefühl dass ich den SslStream nicht einfach als Networkstream verwenden kann.
Weiß jemand wie ich einen Ssl Verschlüsselten Networkstream bekomme?
Oder muss ich Den SslStream an den Networkstream weiterleiten oder so?
Lg
Kiname
Code:
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.Sockets;
using System.IO;
using System.Net.Security;
//http://csharp-tricks-en.blogspot.de/2010/09/receive-emails.html
namespace EmailConnection
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
TcpClient POP3Server = new TcpClient(); // TcpClient for the connection to the server
SslStream POP3StreamSSL;
//NetworkStream POP3Stream; // network stream for the connection with the server
StreamReader StreamListenerSSL;
//StreamReader StreamListener; // StreamReader to convert byte data to readable text
byte[] CommandBuffer = new byte[1024]; // byte Array for sending commands to the server
ASCIIEncoding AscEncoding = new ASCIIEncoding(); // ASCII encoding to encode ASCII commands to byte data
private void Form1_Load(object sender, EventArgs e)
{
if (Connect("pop3.web.de", 110, "EineWebEmail ohne @web.de", "DasPasswortFürDenAccountl"))
{
Quit();
}
}
private bool Connect(string server, int port, string user, string password)
{
POP3Server.Connect(server, port); // connect
POP3StreamSSL = new SslStream(POP3Server.GetStream());
//POP3Stream = POP3Server.GetStream(); // create network stream
StreamListenerSSL = new StreamReader(POP3StreamSSL);
//StreamListener = new StreamReader(POP3Stream); // create StreamReader from network stream
if (POP3Server.Connected) // connection succesful
{
//MessageBox.Show(StreamListener.ReadLine());
MessageBox.Show(StreamListenerSSL.ReadLine());
CommandBuffer = AscEncoding.GetBytes("USER " + user + "\r\n");
//POP3Stream.Write(CommandBuffer, 0, CommandBuffer.Length);
POP3StreamSSL.Write(CommandBuffer, 0, CommandBuffer.Length);
//MessageBox.Show(StreamListener.ReadLine());
MessageBox.Show(StreamListenerSSL.ReadLine());
CommandBuffer = AscEncoding.GetBytes("PASS " + password + "\r\n");
//POP3Stream.Write(CommandBuffer, 0, CommandBuffer.Length);
POP3StreamSSL.Write(CommandBuffer, 0, CommandBuffer.Length);
//MessageBox.Show(StreamListener.ReadLine());
MessageBox.Show(StreamListenerSSL.ReadLine());
return true;
}
return false;
}
private void Quit()
{
CommandBuffer = AscEncoding.GetBytes("QUIT\r\n");
//POP3Stream.Write(CommandBuffer, 0, CommandBuffer.Length);
POP3StreamSSL.Write(CommandBuffer, 0, CommandBuffer.Length);
//MessageBox.Show(StreamListener.ReadLine());
MessageBox.Show(StreamListenerSSL.ReadLine());
}
}
}