How to get Hotmail Contacts

asp.net , csharp Pakistan
  • 12 years ago

    Sir

           Any Body help me to get Hotmail Contects by giving my hotmail Email Address and Password using VB.NET or C# in my asp.net web Page. If any Body Has Code or any idea About that please Help me. I have Class for yahoo Contact Extrection its code in C# as Bellow But i have need For Hotmail public class YahooExtract : IMailContactExtract

    {

    private const string _addressBookUrl = "http://address.yahoo.com/yab/us/Yahoo_ab.csv?loc=us&.rand=1671497644&A=H&Yahoo_ab.csv";

    private const string _authUrl = "https://login.yahoo.com/config/login?"; private const string _loginPage = "https://login.yahoo.com/config/login";

    private const string _userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3";

    #region IMailContactExtract Memberspublic bool Extract( NetworkCredential credential, out MailContactList list )

    {

    bool result = false;

    list = new MailContactList();

    try

    {

    WebClient webClient =
    new WebClient();

    webClient.Headers[ HttpRequestHeader.UserAgent ] = _userAgent;

    webClient.Encoding =
    Encoding.UTF8;

    byte[] firstResponse = webClient.DownloadData( _loginPage );

    string firstRes = Encoding.UTF8.GetString( firstResponse );

     

    NameValueCollection postToLogin =
    new NameValueCollection();Regex regex = new Regex( "type=\"hidden\" name=\"(.*?)\" value=\"(.*?)\"", RegexOptions.IgnoreCase );

    Match match = regex.Match( firstRes );

    while ( match.Success )

    {

    if ( match.Groups[ 0 ].Value.Length > 0 )

    {

    postToLogin.Add( match.Groups[ 1 ].Value, match.Groups[ 2 ].Value );

    }

    match = regex.Match( firstRes, match.Index + match.Length );

    }

     

    postToLogin.Add(
    ".save", "Sign In" );

    postToLogin.Add( ".persistent", "y" );

    string login = credential.UserName.Split( '@' )[ 0 ];

    postToLogin.Add( "login", login );

    postToLogin.Add( "passwd", credential.Password );

    webClient.Headers[ HttpRequestHeader.UserAgent ] = _userAgent;

    webClient.Headers[ HttpRequestHeader.Referer ] = _loginPage;

    webClient.Encoding =
    Encoding.UTF8;

    webClient.Headers[ HttpRequestHeader.Cookie ] = webClient.ResponseHeaders[ HttpResponseHeader.SetCookie ];

    webClient.UploadValues( _authUrl, postToLogin );

    string cookie = webClient.ResponseHeaders[ HttpResponseHeader.SetCookie ];if ( string.IsNullOrEmpty( cookie ) )

    {

    return false;

    }

    string newCookie = string.Empty;

    string[] tmp1 = cookie.Split( ',' );foreach ( string var in tmp1 )

    {

    string[] tmp2 = var.Split( ';' );

    newCookie = String.IsNullOrEmpty( newCookie ) ? tmp2[ 0 ] : newCookie + ";" + tmp2[ 0 ];

    }

    // set login cookie

    webClient.Headers[ HttpRequestHeader.Cookie ] = newCookie;

    byte[] thirdResponse = webClient.DownloadData( _addressBookUrl );

    string thirdRes = Encoding.UTF8.GetString( thirdResponse );

    string crumb = string.Empty;Regex regexCrumb = new Regex( "type=\"hidden\" name=\"\\.crumb\" id=\"crumb1\" value=\"(.*?)\"", RegexOptions.IgnoreCase );

    match = regexCrumb.Match( thirdRes );

    if ( match.Success && match.Groups[ 0 ].Value.Length > 0 )

    {

    crumb = match.Groups[ 1 ].Value;

    }

     

    NameValueCollection postDataAB =
    new NameValueCollection();

    postDataAB.Add( ".crumb", crumb );

    postDataAB.Add( "vcp", "import_export" );postDataAB.Add( "submit[action_export_yahoo]", "Export Now" );

    webClient.Headers[ HttpRequestHeader.UserAgent ] = _userAgent;

    webClient.Headers[ HttpRequestHeader.Referer ] = _addressBookUrl;

    byte[] FourResponse = webClient.UploadValues( _addressBookUrl, postDataAB );

    string csvData = Encoding.UTF8.GetString( FourResponse );

    string[] lines = csvData.Split( '\n' );foreach ( string line in lines )

    {

    string[] items = line.Split( ',' );

    if ( items.Length < 5 )

    {

    continue;

    }

    string email = items[ 4 ];

    string name = items[ 3 ];

    if ( !string.IsNullOrEmpty( email ) && !string.IsNullOrEmpty( name ) )

    {

    email = email.Trim(
    '\"' );

    name = name.Trim( '\"' );

    if ( !email.Equals( "Email" ) && !name.Equals( "Nickname" ) )

    {

    MailContact mailContact =
    new MailContact();

    mailContact.Name = name;

    mailContact.Email = email;

    list.Add( mailContact );

    }

    }

    }

    result =
    true;

    }

    catch

    {

    }

    return result;

    }

    #endregion

    }

  • 11 years ago

    Hey i am trying to implement the same functionality of getting the hotmail contacts by giving the username and password without using the hotmail api in asp.net c#. Can anybody give me the working code of how to implement it?

    Any help is greatly appreciated

  • 10 years ago

    you can use this component with .Net, c# and VB.. http://www.socialcontactsimporter.net Worked on our web site like a dream and works with all the major providers, Hotmail, Gmail, Yahoo, Outlook, Outlook Express, Firefox and so on..

    We tried a number of ways even creating our own but was no good because the email providers (hotmail etc,) kept on changing their web sites making our code break.. Dont waist your time. Life is too short.

    They also do hourly testing to make sure it works.

Post a reply

Enter your message below

Sign in or Join us (it's free).

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Weeks of coding can save you hours of planning.”