[Mono-list] Updating my gmail source code

Paul Johnson paul at all-the-johnsons.co.uk
Sat Feb 16 11:27:24 UTC 2013


Hi,

I have on my website a nice simple way to connect to gmail and pull down 
emails with it. It worked. However, I've had an email from someone who 
decided to implement it to say it no longer worked. URL is 
http://www.all-the-johnsons.co.uk/csharp/email.html

Having looked over the code, it's down to the a TLSSecurity exception 
when trying to authenticate on the server. I've adjusted the code as 
follows, but I'm still getting the same error.

Code that failed

SslStream nstream;
		
public SslStream Connect(string username, string password)
{
    string message;
    string response;
    TcpClient tcpClient = new TcpClient();
    tcpClient.Connect("pop.gmail.com", 995);
    nstream = new SslStream(tcpClient.GetStream());
    nstream.AuthenticateAsClient("pop.gmail.com"); // fails
    response = Response(nstream);

adjusted code

public static bool Validator (object sender, X509Certificate 
certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{	
return true;
}

public SslStream Connect ()
{
string message = "", response = "";
ServicePointManager.ServerCertificateValidationCallback = Validator;
TcpClient tcpClient = new TcpClient ();
tcpClient.Connect ("pop.gmail.com", 995);
SslStream nstream = new SslStream (tcpClient.GetStream ());
nstream.AuthenticateAsClient ("pop.gmail.com"); // fail still

Any ideas on what I'm doing wrong?

The exact error is
System.IO.IOException: The authentication or decryption has failed --> 
Mono.Security.Protocol.Tls.TlsException: Invalid certificate received 
from the server

Paul

-- 
"Space," it says, "is big. Really big. You just won't believe how 
vastly, hugely, mindbogglingly big it is. I mean, you may think it's a 
long way down the road to the chemist's, but that's just peanuts to 
space, listen..."
Hitch Hikers Guide to the Galaxy, a truly remarkable book!



More information about the Mono-list mailing list