C# code to Read gmail inbox

using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;


public partial class EmailControl_inbox : System.Web.UI.Page
{
NetworkStream ns;
protected void Page_Load(object sender, EventArgs e)
{
TcpClient mailclient;
StreamReader sr;
StreamWriter sw;
try
{
mailclient = new TcpClient("mail.gmail.com", 110); //hostname,portname
}
catch (SocketException)
{
status.Text = "Unable to connect to server";
return;
}
ns = mailclient.GetStream();
sr = new StreamReader(ns);
sw = new StreamWriter(ns);
RequestForRead(ns,sr,sw);
}
public void Logout(NetworkStream ns, StreamReader sr, StreamWriter sw)
{
if (ns != null)
{
sw.Close();
sr.Close();
ns.Close();
//mailclient.Close();
}

}
public void ShowMessage(NetworkStream ns, string messnumber)
{
StreamReader Ssr = new StreamReader(ns);
StreamWriter Ssw = new StreamWriter(ns);
string response;
Ssw.WriteLine("retr " + messnumber);
Ssw.Flush();
response = Ssr.ReadLine();
while (true)
{
response = Ssr.ReadLine();
if (response == ".")
break;
display.Text += response + "\r\n";
}
}
public void RequestForRead(NetworkStream ns, StreamReader sr, StreamWriter sw)
{
string response;
string from = null;
string subject = null;
int totmessages;
response = sr.ReadLine();
sw.WriteLine("User " + Session["username"]);
sw.Flush();
response = sr.ReadLine();
if (response.Substring(0, 3) == "-ER")
{
status.Text = "Unable to log into server";
return;
}
sw.WriteLine("Pass " + Session["password"]);
sw.Flush();
try
{
response = sr.ReadLine();
}
catch (IOException)
{
status.Text = "Unable to log into server";
return;
}
if (response.Substring(0, 4) == "-ERR")
{
status.Text = "Unable to log into server";
return;
}
sw.WriteLine("stat");
sw.Flush();
response = sr.ReadLine();
string[] nummess = response.Split(' ');
totmessages = Convert.ToInt16(nummess[1]);
if (totmessages > 0)
{
status.Text = "you have " + totmessages + " messages";
}
else
{
status.Text = "You have no messages";
}
for (int i = 1; i <= totmessages; i++)
{
sw.WriteLine("top " + i + " 0");
sw.Flush();
response = sr.ReadLine();
while (true)
{
response = sr.ReadLine();
if (response == ".")
break;
if (response.Length > 4)
{
if (response.Substring(0, 5) == "From:")
from = response;
if (response.Substring(0, 8) == "Subject:")
subject = response;
}
}
messages.Items.Add(i + " " + from + " " + subject);
}

}
protected void selectmessage(object sender, EventArgs e)
{
string text =messages.SelectedItem.ToString();
string[] textarray = text.Split(' ');
ShowMessage(ns, textarray[0]);

}

}

Comments

Popular Posts