[ Bope @ 02.09.2006. 10:37 ] @
Da li neko moze da mi kaze kako mogu da napravim program koji ce da proverava da li mi je stigao mail?
Znam kako da napravim program za slanje mail-a (System.net.mail) ali nemam ideju kako da napisem kod koji ce da cita mail....(trazio sam po netu ali sam uspeo da nadjem samo stranicu na kojoj je kod koji koristi neki dll koji moram da kupim)
[ dusty @ 02.09.2006. 17:15 ] @
Mozes preko soketa da se nakacis na mail server, i onda preko POP3 ili IMAP protokola proveravas i skidas postu.
[ draganc__ @ 02.09.2006. 17:43 ] @
Sve ovo sto cu napisati je proizvod teorije, ne prakse, jer mail klijent nikad nisam pravio. Da bi napravio mail klijent moras znati TCP socket programiranje i naravno format poruke pop3 protokola, kao i pravila komunikacije klijent-server kod pop3. Konektujes se na server tipa mail.server.net sa username i password-om na pop3 portu - obicno je 110. Tada ocitas poruke (ne znam tacno kako). Poruke ces dobiti preko streamova, pa moras sam sebi formatirati poruku (ovo nije tesko). Evo ti i format poruke (ima dva dijela zaglavlje i tijelo, razdvojena praznom linijom):

From posiljalac Wed Apr 26 10:01:56 2006
Date: Wed, 26 Apr 2006 10:01:48 +0200
From: Test <[email protected]>
To: Test2 <[email protected]>
Subject: Probna poruka

Ovo je test, ovo je tijelo poruke.

Dalje znaj da odgovori servera nisu numericki kao kod SMTP numericki vec tekstualni +OK ili +ERR. Pop3 je tekstualni protokol, pa mozes direktno preko telneta eksperimentisati, evo ti primjer protokola:
+OK
USER guest
+OK
PASS guest
+OK
STAT
+OK 2 2210
LIST
+OK
1 1010
2 1200
.TOP 1
5
<zaglavlje 1>
<prvih 5 linija tijela>
.RETR 1
<kompletna poruka 1>
.DELE 1
+OK
QUIT

Redoslijed komunikacije moras postovati 100% inace nece raditi.
Uh mnogo sam napisao a nismo ni naceli temu jos, uglavnom nije ti lak zadatak, poz...
[ Bope @ 02.09.2006. 18:27 ] @
Uh nista onda...nisam ja toliko dobar u tome.
Cudi me da su napravili mogucnost slanja poruka a nisu omogucili metod za
primanje poruka.
Nema veze,probacu da u VB6 napravim ocx kontrolu za primanje mail-a (u VB6
to postoji) pa da je koristim u net-u.
[ jablan @ 02.09.2006. 19:15 ] @
Ovde imaš jednu opensource biblioteku. Nisam je koristio, možda neko drugi jeste pa može da nam kaže kakva je:

http://www.indyproject.org/Sockets/index.en.aspx
[ Zevs85 @ 09.09.2006. 13:21 ] @
Pozdrav

Da se nadovezem na temu. Kako bih mogao da izvrsim pristum pop3 serveru ako trebam SSL?
Citat:
dusty: Mozes preko soketa da se nakacis na mail server, i onda preko POP3 ili IMAP protokola proveravas i skidas postu.

Da li ovo radi i kod SSL protokola? Meni ne polazi za rukom?
[ IQooLogic @ 09.09.2006. 22:05 ] @

//Ako ti nesto nije jasno slobodno me pitaj na mail > [email protected] (moze i Skype) - NADAM SE DA SAM POMOGAO !!!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Web.Mail;
using System.Windows.Forms;

namespace Tiny_e_mail
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();//514; 395
}

public TcpClient Server;
public NetworkStream NetStrm;
public StreamReader RdStrm;
public string Data;
public byte[] szData;
public string CRLF = "\r\n";

public static bool IsConnected()
{
System.Uri Url = new System.Uri("http://www.google.com");

System.Net.WebRequest WebReq;
System.Net.WebResponse Resp;
WebReq = System.Net.WebRequest.Create(Url);

try
{
Resp = WebReq.GetResponse();
Resp.Close();
WebReq = null;
return true;
}

catch
{
WebReq = null;
return false;
}
}

private void Form1_Load(object sender, EventArgs e)
{
smtpcombo.SelectedIndex = 0;
pop3combo.SelectedIndex = 0;
IsConnected();
if (IsConnected() == true)
{
onoffbtn.BackColor = Color.Lime;
statuslb.Items.Add("ConnectionStatus : Online");
}
else
{
onoffbtn.BackColor = Color.Red;
statuslb.Items.Add("ConnectionStatus : Offline");
}
}

private void exitbtn_Click(object sender, EventArgs e)
{
this.Dispose();
Application.Exit();
}

private void newbtn_Click(object sender, EventArgs e)
{
totxt.Clear();
subjecttxt.Clear();
bodyrtxt.Clear();
fatt = String.Empty;
statuslb.Items.Clear();
}

private void attbtn_Click(object sender, EventArgs e)
{
if (addAttachmentofd.ShowDialog() == DialogResult.OK)
{
fatt = addAttachmentofd.FileName;
attbtn.Text = fatt;
statuslb.Items.Add("Attachment : " + fatt);
}
}

private void forwardbtn_Click(object sender, EventArgs e)
{
int width = 0;
width = Form1.ActiveForm.ClientSize.Width;
while (Form1.ActiveForm.Width <= 880)
{
width = Form1.ActiveForm.ClientSize.Width + 50;
Form1.ActiveForm.ClientSize = new Size(width - 25, 370);
}
backwardbtn.Visible = true;
forwardbtn.Visible = false;
}

private void backwardbtn_Click(object sender, EventArgs e)
{
int width = 0;
width = Form1.ActiveForm.ClientSize.Width;
while (Form1.ActiveForm.Width >= 522)
{
width = Form1.ActiveForm.ClientSize.Width - 50;
Form1.ActiveForm.ClientSize = new Size(width + 25, 370);
}
backwardbtn.Visible = false;
forwardbtn.Visible = true;
}

private void onoffbtn_Click(object sender, EventArgs e)
{
IsConnected();
if (IsConnected() == true)
{
onoffbtn.BackColor = Color.Lime;
statuslb.Items.Add("ConnectionStatus : Online");
}
else
{
onoffbtn.BackColor = Color.Red;
statuslb.Items.Add("ConnectionStatus : Offline");
}
}

public string fatt = String.Empty;

private void sentbtn_Click(object sender, EventArgs e)
{
try
{
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;

System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
mail.From = fromtxt.Text;
if (fromtxt.Text == String.Empty)
{
statuslb.Items.Add("Error : From who is missing.");
}
else
{
statuslb.Items.Add("From : " + fromtxt.Text);
}
mail.To = totxt.Text;
if (totxt.Text == String.Empty)
{
statuslb.Items.Add("Error : To who is missing.");
}
else
{
statuslb.Items.Add("To : " + totxt.Text);
}
mail.Subject = subjecttxt.Text;
if (subjecttxt.Text == String.Empty)
{
statuslb.Items.Add("Error : Subject is missing");
}
else
{
statuslb.Items.Add("Subject: " + subjecttxt.Text);
}

mail.BodyFormat = MailFormat.Text;
statuslb.Items.Add("Mail format : text");
mail.Body = bodyrtxt.Text + "\n\n\n(IQooLogic.NT.018 mail Client)mail: [email protected]\nBuilt by IQooLogic.NT.018 All rights reserved.\nNIS 4Ever!!!";

if (fatt != String.Empty)
{
MailAttachment att = new MailAttachment(fatt, MailEncoding.Base64);
mail.Attachments.Add(att);

SmtpMail.SmtpServer = smtpcombo.Text;
statuslb.Items.Add("SMTP :" + smtpcombo.Text);
SmtpMail.Send(mail);
statuslb.Items.Add("******************SENT******************");
errbtn.BackColor = Color.Lime;
Cursor.Current = cr;

att = null;
}
else
{
statuslb.Items.Add("Attachment : none");
SmtpMail.SmtpServer = smtpcombo.Text;
statuslb.Items.Add("SMTP :" + smtpcombo.Text);
SmtpMail.Send(mail);
statuslb.Items.Add("******************SENT******************");
errbtn.BackColor = Color.Lime;
Cursor.Current = cr;
}
mail = null;
}

catch (Exception err)
{
errbtn.BackColor = System.Drawing.Color.Red;
statuslb.Items.Add("Error : " + err.Message);
statuslb.Items.Add("*********************ERROR*********************");
}
}

private void connbtn_Click(object sender, EventArgs e)
{
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;

statuslb.Items.Clear();

try
{
if (IsConnected() == true)
{
// create server POP3 with port 110
Server = new TcpClient(pop3combo.Text, 110);
statuslb.Items.Add("POP3 Server : " + pop3combo.Text);

NetStrm = Server.GetStream();
RdStrm = new StreamReader(Server.GetStream());
statuslb.Items.Add(RdStrm.ReadLine());

Data = "USER " + usertxt.Text + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
statuslb.Items.Add("User : " + usertxt.Text);
statuslb.Items.Add(RdStrm.ReadLine());

Data = "PASS " + passtxt.Text + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
statuslb.Items.Add("Pass : " + passtxt.Text);
statuslb.Items.Add(RdStrm.ReadLine());

Data = "STAT" + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
statuslb.Items.Add(RdStrm.ReadLine());

connbtn.Enabled = false;
dissbtn.Enabled = true;
retrivebtn.Enabled = true;
}
else
{
statuslb.Items.Add("Error: No connection could be made.");
errbtn.BackColor = Color.Red;
}

Cursor.Current = cr;

}
catch (InvalidOperationException err)
{
statuslb.Items.Add("Error: " + err.ToString());
errbtn.BackColor = Color.Red;
}
}

private void dissbtn_Click(object sender, EventArgs e)
{
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;

Data = "QUIT" + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);
statuslb.Items.Add(RdStrm.ReadLine());

NetStrm.Close();
RdStrm.Close();

connbtn.Enabled = true;
dissbtn.Enabled = false;
retrivebtn.Enabled = false;

Cursor.Current = cr;

statuslb.Items.Clear();
}

private void retrivebtn_Click(object sender, EventArgs e)
{
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;

string szTemp;

retrivrtxt.Clear();

try
{
// retrieve mail with number mail parameter
Data = "RETR " + mailnmbtxt.Text + CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData, 0, szData.Length);

szTemp = RdStrm.ReadLine();
if (szTemp[0] != '-')
{

while (szTemp != ".")
{
retrivrtxt.Text += szTemp + CRLF;
szTemp = RdStrm.ReadLine();
}
}
else
{
statuslb.Items.Add(szTemp);
}

statuslb.Items.Add("Retrived Successful");

Cursor.Current = cr;
}
catch (InvalidOperationException err)
{
statuslb.Items.Add("Error: " + err.ToString());
errbtn.BackColor = Color.Red;
}
}

private void leftpointbtn_Click(object sender, EventArgs e)
{
Form1.ActiveForm.Location = new Point(0, 0);
}

private void rightpointbtn_Click(object sender, EventArgs e)
{
Form1.ActiveForm.Location = new Point(516, 0);
}

private void button1_Click(object sender, EventArgs e)
{
}

int brklikova = 1;
private void maxbtn_Click(object sender, EventArgs e)
{
++brklikova;
if (brklikova % 2 == 0)
{
Form1.ActiveForm.WindowState = FormWindowState.Maximized;
}
else
{
Form1.ActiveForm.WindowState = FormWindowState.Normal;
}
}

private void closebtn_Click(object sender, EventArgs e)
{
this.Dispose();
this.Close();
}

private void minbtn_Click(object sender, EventArgs e)
{
Form1.ActiveForm.WindowState = FormWindowState.Minimized;
}

private void Form1_Click(object sender, EventArgs e)
{
frmmovetm.Start();
if (Control.MouseButtons == MouseButtons.Right)
{
frmmovetm.Stop();
}
}

private void frmmovetm_Tick(object sender, EventArgs e)
{
try
{
Form1.ActiveForm.Bounds = new Rectangle(MousePosition.X-254, MousePosition.Y-180, 508, 370);
if (Control.MouseButtons == MouseButtons.Right)
{
frmmovetm.Stop();
}
}
catch
{ }
}
}
}

//Ako ti nesto nije jasno slobodno me pitaj na mail > [email protected] - NADAM SE DA SAM POMOGAO !!!
[ Zevs85 @ 10.09.2006. 17:07 ] @
IQooLogic
Ovaj kod nece radtiti kod servera koji zahtevaju SSL protokol. Tada se koristi port 995 (ako se ne varam). Mada kod mene neca da radi i ako napisem tcpClient(server, 995);
Jel moze uopste da se pristupi serveru ako on koristi SSL na ovaj nacin...?
[ IQooLogic @ 12.09.2006. 00:28 ] @
Nisam siguran ali radim na tome.Obavesticu te sigurno i nisi prvi sa
tim pitanjem.Hvala na saradnji.Javi cu ti sigurno kroz dan-dva cim probam
na neki komp sa DSL-om.Cujemo se ...




Smele MC

---------------------------------
Get your email and more, right on the new Yahoo.com
--0-887624563-1158016908=:13316
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<br><br><b><i>Zevs85 &lt;[email protected]&gt;</i></b> wrote:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> IQooLogic<br>Ovaj kod nece radtiti kod servera koji zahtevaju SSL protokol. Tada se koristi port 995 (ako se ne varam). Mada kod mene neca da radi i ako napisem tcpClient(server, 995);<br>Jel moze uopste da se pristupi serveru ako on koristi SSL na ovaj nacin...?<br><br>--<br>http://www.elitesecurity.org/p...r><br>Prijave/odjave: http://www.elitesecurity.org/p...e#211679<br><br>Ne menjajte sledece dve linije ukoliko odgovarate putem emaila!<br>esauth:211679:7c27641a2dc1a18b8c8cb71b722e1ef1<br>
[ IQooLogic @ 12.09.2006. 03:03 ] @

Probaj da umesto NetworkStream NetStrm stavis System.Net.Security.SslStream.
To bi recimo bilo tipa > System.Net.Security.SslStream ssl = new System.Net.Security.SslStream(Stream innerStream) gde je innerStream > System.IO.Srteam, mada vec ga vec imas "StreamReader RdStrm".Javi mi na mail !.Unapred hvala !!!Unapred hvala !!!
[ Bope @ 12.09.2006. 12:15 ] @
public System.Net.Security.SslStream NetStrm;
public StreamReader RdStrm;
public string Data;
public byte[] szData;
public string CRLF = "\r\n";

public Form1()
{
InitializeComponent();
NetStrm = new System.Net.Security.SslStream(RdStrm);
}

Ne prolazi! SslStream ocekuje Stream tip a ne StreamReader
[ IQooLogic @ 12.09.2006. 14:38 ] @
Mozda ces morati da sacekas jos koji dan da nadjem de da probam pa ako uspe ili ne uspe javljam ti(vam) !
[ IQooLogic @ 14.09.2006. 01:42 ] @
MailMessage mail = new MailMessage();

mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");

mail.Subject = "This is an email";
mail.Body = "this is the body content of the email.";

//Port 587 je jos jedan SMTP port
SmtpClient smtp = new SmtpClient("127.0.01", 587);
smtp.EnableSsl = true;
smtp.Send(mail);


Ovo je samo za slanje maila sa SSL-om a za primanje imam malih poteskoca.Obavestavacu te ...
[ IQooLogic @ 14.09.2006. 01:47 ] @
Saznao sam da se SSL ne mozes ukljuciti sa username-om i password-om stoga nisam siguran koliko cu da uspem ali trudim se ...Moguce je da neku poruku salje System.Net.Mail pa da me to zeza oko SSL-a.Radim i dalje i ne odustajem !!!
[ IQooLogic @ 14.09.2006. 02:44 ] @
Probaj sledece sajtove mozda rese tvoj a bogami i moj problem > www.systemwebmail.com i www.systemnetmail.com !
[ IQooLogic @ 14.09.2006. 03:53 ] @
Odi "http://www.advancedintellect.com/download.aspx#smtp" i skini : AdvancedIntellect.Ssl.dll , aspNetPOP3 v2.5.2.0 !To bi trebalo da resi sve!

Code:
Evo primera >

POP3 p = new POP3( "mail.example.com", "[email protected]", "test" );

AdvancedIntellect.Ssl.SslSocket ssl = new AdvancedIntellect.Ssl.SslSocket();
p.LoadSslSocket( ssl );

p.LogPath = "c:\\pop3.log";
p.Port = 995;
p.Connect();
int count = p.MessageCount();
Console.WriteLine( count );

for( int i=0;i<count;i++)
{
string headers = p.GetHeaders( i );
Console.WriteLine( headers );
}
p.Disconnect();


Nadam se da sam pomogao !!! ZIVELI
[ Zevs85 @ 15.09.2006. 17:21 ] @
Mani bas nesto ne ide... Tacnije program pukne ovde ...

Code:
POP3 p = new POP3( "mail.example.com", "[email protected]", "test" );


unesem podesavanja za GMail ali nece... Jel radi ovo kome?
[ IQooLogic @ 15.09.2006. 17:52 ] @
Zevs85
Sa adrese http://www.advancedintellect.com/download.aspx#smtp skini AdvancedIntellect.Ssl.dll , aspNetPOP3 v2.5.2.0 zatim ih ucitaj kao reference i MORAS DA UCITAS LICENCU i to bi bilo sve.
A evo i koda >
Code:
Sample code >
//ucitavas licencni fajl
POP3.LoadLicenseFile( "c:\\aspNetPOP3.xml.lic" );
//ovo ti je jasno
POP3 p = new POP3( "server", "user", "pass" );

//i ovo ti je jasno
AdvancedIntellect.Ssl.SslSocket ssl = new AdvancedIntellect.Ssl.SslSocket();

//povesujes SSL sa POP3
p.LoadSslSocket( ssl );

//ostalo je sve jasno
p.LogPath = "c:\\pop3.log";
p.Port = 995;
p.Connect();
int count = p.MessageCount();
Console.WriteLine( count );

for( int i=0;i<count;i++)
{
    string headers = p.GetHeaders( i );
    Console.WriteLine( headers );
}
p.Disconnect();

To je sve.Prosto, zar ne ?!
[ IQooLogic @ 15.09.2006. 18:04 ] @

Ko ce i da li ce te me podrzati u poduhvatu pisanja programa za slanje i primanje maila sa podrskom za SSL, sa slikama u mailu, HTML format maila i mnogo toga jos i da naravno bice OPEN SOURCE.Na mail mozete slati ideje, sample code-ove sa SUBJECTOM - Mail in C#.HVALA UNAPRED !!!
[ Bope @ 15.09.2006. 19:33 ] @
I'm in! :)
Zanima me samo-da li cemo koristiti ovaj dll ili cemo pisati sve od nule?
[ IQooLogic @ 15.09.2006. 20:02 ] @
Code:
Za sada pocecemo sa DLL-ima a malo kasnije, kad provalimo fore moze i od nule



Na moj mail mozete slati sve POP3 i SMTP servere koji postoje(recimo za EuNet,InfoSky,Medianis,PTT,Banker, ...)

mail to: [email protected]

[Ovu poruku je menjao IQooLogic dana 15.09.2006. u 22:07 GMT+1]
[ Zevs85 @ 15.09.2006. 22:09 ] @
Pridruzujem se... ;)

Inace glavni problem je bio:
Code:
POP3.LoadLicenseFile( "c:\\aspNetPOP3.xml.lic" );


Obzirom da sam nov u ovome, ovo mi je bilo nepoznato...
[ Zevs85 @ 15.09.2006. 23:16 ] @
Evo da dam doprinos u vidu linka
http://www.example-code.com/csharp/email.asp
[ Bope @ 16.09.2006. 00:39 ] @
Ok.Ajmo za pocetak definitivno da se dogovorimo koji dll skidamo i
koristimo,sa koje adrese i sl.
[ IQooLogic @ 16.09.2006. 01:47 ] @
One koje sam naveo ranije i jos aspNetMime za lepo prikazivanje mailova, u ostalom videces kako radi.Sto se tice imena programa vec sam izbacivao Tiny e-mail od v1.0 do v2.2 pa ako nije problem i ako se svi slazu da tako i ostane.Kada program bude zavrsen sve koji su na bilo koji nacin ucestvovali bice pomenuti u delu ABOUT zajedno sa aktivnim programerima i naravno tvorcima famouznih DLL fajlova.Otvoren sam za sve primedbe i predloge zato pisite.

Skidamo sl. DLL-e : aspNetMime, aspNetPOP3, AdvancedIntellect.Ssl.dll.Za sada toliko.

Adresa je > http://www.advancedintellect.com/download.aspx

Code:
HVALA ZA LINK Zevs85
[ Bope @ 16.09.2006. 01:59 ] @
ok.
Da li neko od vas koristi Yahoo! Messenger (nije nikakva reklama)? Mislim da bi bilo najbolje da napravimo program koji ce da "lezi" u sys. tray-u i da povremeno proverava mail,pa ako naidje na nesto ne procitano javi.

tiny_email je pisan u C#-u za framework 2.0 (koliko se secam) - nastavljamo tako ili je nesto drugo u planu?
[ Zevs85 @ 16.09.2006. 02:19 ] @
Citat:
Bope: ok.
Da li neko od vas koristi Yahoo! Messenger (nije nikakva reklama)? Mislim da bi bilo najbolje da napravimo program koji ce da "lezi" u sys. tray-u i da povremeno proverava mail,pa ako naidje na nesto ne procitano javi.

tiny_email je pisan u C#-u za framework 2.0 (koliko se secam) - nastavljamo tako ili je nesto drugo u planu?


Sto se tice messenger-a to nije problem, naci ce se... Da, ja sam tako zamislio i odradio dobar deo posla. Mada moze posluziti kao ideja za dalji rad ili za pocetak Daj da se dogovorimo i da od ponedeljka vec vidimo sta raditi.
[ IQooLogic @ 16.09.2006. 03:51 ] @

Naci cemo Yahoo! Messenger.Dobra ideja za NotifyIcon, ali nisam siguran kako rade DownloadMessageEventArgs i njemu slicni ali provalicu(trebace neko vreme).Trenutno imam neke ispite u skorije vreme ali trudicu se da svaki slobodni trenutak koristim za pisanje koda i provaljivanje DownloadMessageEventArgs.Od sutra sam na Yahoo! Messenger-u pa na dalje.


Code:
e-mail mi znate tako da ce te me lako naci na Yahoo! Messenger-u, pa cujemo se ...


[Ovu poruku je menjao IQooLogic dana 16.09.2006. u 05:26 GMT+1]
[ Bope @ 16.09.2006. 04:33 ] @
looooool loooool loooool :D:D
pa nisam predlagao da se nalazimo preko mess-a nego sam hteo da kazem da mozemo da napravimo program koji obavestava o novim mail-ovima na slican nacin na koji to radi yahoo msgr :)
[ IQooLogic @ 16.09.2006. 05:14 ] @
Code:
Nisam odmah ukapirao.Sorry !!! Vazi slazem se povodom predloga.
[ Zevs85 @ 16.09.2006. 22:02 ] @
@All
Pristup mail serveru koji zahteva ssl, moze proci i bez pomenutih biblioteka...

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Net.Sockets;
using System.Net.Security;
using System.IO;


namespace waSSL
{
    public partial class formSSL : Form
    {
        private TcpClient serverTcpConnection;
        private Stream pop3Stream;
        private StreamReader pop3StreamReader;

        protected string CRLF = "\r\n";

        public formSSL()
        {
            InitializeComponent();
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            string odgovor;

            serverTcpConnection = new TcpClient("server", 995);   //ja sam isprobavao na gmail
            pop3Stream = new SslStream(serverTcpConnection.GetStream(), false);
            ((SslStream)pop3Stream).AuthenticateAsClient("server");
            pop3StreamReader = new StreamReader(pop3Stream, Encoding.ASCII);
            rtbTekst.Text += pop3StreamReader.ReadLine();
            executeCommand("USER korisnicko_ime" + CRLF,out odgovor);
            MessageBox.Show(odgovor);
            executeCommand("PASS lozinka" + CRLF,out odgovor);
            MessageBox.Show(odgovor);
            executeCommand("LIST" + CRLF, out odgovor);
            MessageBox.Show(odgovor);
            

        }

        private void executeCommand(string command, out string response)
        {
            byte[] WriteBufer = new byte[1024];
            ASCIIEncoding en = new ASCIIEncoding();
            WriteBufer = en.GetBytes(command);
            pop3Stream.Write(WriteBufer, 0, WriteBufer.Length);
            pop3Stream.Flush();

            response = pop3StreamReader.ReadLine();
            rtbTekst.Text += response;
        }
    }
}


Ovo je samo primer konekcije na server... Ostalo se svodi na rad sa stringovima, al bice ovde jos puno o tome.
[ IQooLogic @ 24.09.2006. 09:01 ] @

Dokle ste stali momci.Ja se jos petljam sa izgledom jer mora da bude savrseno. :)

[ Djoks @ 24.09.2006. 16:01 ] @
Ja sam ranije za provjeru e-maila koristio ActiveX kontrolu pod nazivom: FreePOP3. Mislim da se i dalje moze pronaci na Internetu, a osim nje postoje i druge Free POP3 kontrole (evo korisne adrese: http://www.newfreedownloads.com/find/pop3.html).

Inace, nije ni komunikaciju sa mail serverom kroz Socket tesko napisati, osim sto je trebas "stimovati" u skladu sa mail serverom. Neki dozvoljavaju tekstualno slanje korisnickih podataka, kod nekih treba unos kriptovati base64 algoritmom itd. Problem je jedino sa programiranjem funkcionalnosti nalik "preview" e-mail poruke, jer kad mail server pocne da salje e-mail poruku, onda te zapljusne podacima kao more.

Najbolje da koristis vec gotove POP3 biblioteke.

Pozdrav!
[ IQooLogic @ 25.09.2006. 08:16 ] @

Hvala ti ali vec sam nasao biblioteke koje su skroz na skroz free stim sto moras svakog meseca da skines Licence File koji tezi svega 50-ak Kb.Rade odlicno i najvise mi se sviga sto ne moram da placam negde oko 300 - 400 $ za tako nesto.Sto bi se reklo EXTRA, zar ne ?!U ranijim porukama postoje linkovi za te biblioteke, stoga nadji te poruke i procitaj ih.Ali opet kazem HVALA TI !!!


Code:
Molim vas skinite .ZIP(637Kb).Kazite vase misljenje.Otvoren sam za sve ideje a i primedbe.Hvala


[Ovu poruku je menjao IQooLogic dana 25.09.2006. u 09:34 GMT+1]
[ IQooLogic @ 27.09.2006. 11:55 ] @


Zevs85

Dugmici jos ne rade jer jos nije gotovo sa dizajnom ali bice i to, ali ne mogu da kazem uskoro.Naravno da cu objaviti Source Code.Ne verujem da ce biti na ES(de daju UPLOAD veci od 1MB) ali bice najverovatnije na e-mail.Ako imas ideju predlog ili nesto slicno javi mi jer svaka ideja je dobrodosla.Stalno cu dodavati UPLOAD-e srazmerno napredovanju pisanja programa.Hvala na hvalisanju programa.PoZzz ...
[ Zevs85 @ 27.09.2006. 12:31 ] @
Jednu stvar sam zaboravio da ti kazem, kad se pokrene program i pojavi onaj znak na sredini ekrana, ako kliknem na njega on se "zakaci" za kursor. Ne znam jesi tako planirao? Mozda bi bilo bolje da se pojavi i stoji par sekundi kao splashscreen.
[ Zevs85 @ 27.09.2006. 21:11 ] @
Pomoc....


Imam sledeci problem. Kako na Gmail-u da znam kada je poruka iscitana do kraja?
Uglavnom, kod vecine je ovako:

+OK...
From:...
.
.
Subject:
.
.

//Tekst

.
.

i na kraju tacka
.

Znaci znam da je dosao do kraja. Kako to kod gmail-a? Ne mogu da nadjem logiku... HELP
[ Zevs85 @ 27.09.2006. 21:35 ] @
Malo sam zabrljao :)

Ipak postoji i ta tacka...
[ Zevs85 @ 27.09.2006. 21:49 ] @
Kako da to sto je na serveru iscitano ponostim?

Znaci pozovem npr RETR 1 CRLF i on izlista poruku od nekih 100 redova na serveru. Ja iscitam prvih 50 i dalje mi nije potrebno, tacnije pozovem RETR 2 CRLF. U tom slucaju na serveru ostane drugih 50 redova od prve poruke i svi redovi druge poruke.
Ja sam to (visak redova prve) resavao ovako:
Code:
while (pom != ".")
                {
                    pom = strRead.ReadLine();
                }

...pa tek sad pozivao citanje druge.
Ali to mi ne deluje bas mudro, citam redove u prazno... Kako se to radi?
[ IQooLogic @ 28.09.2006. 00:08 ] @
Da tako je planirano da se kaci za kursor i da se na desni click ostavi.Mada sam to prepravio i sada radi tako sto drzis levi taster misa i pomeras ga, prilikom pustanja tastera ostavljas ga na trenutnoj poziciji.Nesto kao kad pomeras prozore u windows-u.
[ IQooLogic @ 03.10.2006. 19:26 ] @
Jedno pitanjce koje nije u direktnoj vezi sa pisanjem programa za mail ali neka veza postoji pa evo pitanja > Kako da sledeci kod prebacim da cita iz string-a a ne iz fajla(ovaj kod sam napisao ali nisam imao vremena da se bakcem sa string-om).Ako neko(bilo ko) zna kako nek napise.
Code:

        void Display()
        {
            int next;
            System.IO.StreamReader sr;
            reklama.Text = String.Empty;
            sr = File.OpenText("C:\\Documents and Settings\\IQooLogic.NT.018\\Desktop\\Tiny e-mail\\display.txt");
            try
            {
            next = sr.Read();
                while (next != -1)
                {
                    reklama.Text = String.Concat(reklama.Text,Convert.ToChar(next));
                    next = sr.Read();
                    reklama.Refresh();
                    Thread.Sleep(8);
                }
            }
            catch
            {
            }
            finally
            {
                if (sr != null)
                {
                    sr.Close();
                }
            }
        }


HVALA unapred
[ IQooLogic @ 11.10.2006. 16:22 ] @
Evo ga uradio sam sam ->

Code:

        string str = "IQoo ClanSoft - Tiny e-mail ®© v3.0 .::o{*_*}o::.";

        void Display(string str)
        {
            StringReader strr = new StringReader(str);
            int next;
            reklama.Text = String.Empty;
            try
            {
                next = strr.Read();
                while (next != -1)
                {
                    reklama.Text = String.Concat(reklama.Text, Convert.ToChar(next));
                    next = strr.Read();
                    reklama.Refresh();
                    Thread.Sleep(10);
                }
            }
            catch
            {
            }
            finally
            {
                if (strr != null)
                {
                    strr.Close();
                }
            }
        }
[ IQooLogic @ 14.10.2006. 02:19 ] @

Cita li ovo neko ???
[ Bope @ 14.10.2006. 10:51 ] @
Ja citam ali iskreno nisam toliko dobar kad je .NET rad sa internetom u
pitanju tako da sam samo nemi posmatrac (za sad) :)
[ IQooLogic @ 15.10.2006. 02:09 ] @
Bope probaj Tiny e-mailer pa mi kazi kako ti se svidja.
Reci mi koji ti je mail pa da ti posaljem ovo programce da vis dal je dobro dizajnirano(vecina dugmica ne radi).Please ...

[Ovu poruku je menjao IQooLogic dana 15.10.2006. u 03:20 GMT+1]
[ Bope @ 15.10.2006. 09:13 ] @
OK.Salji na [email protected]