Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: ASP.NET
I have imported yahoo contacts in my asp.net application.
But while importing yahoo contacts i get like;
 
sans-serif;*font-size:small;*font:x-small;}
 
How could i solve it?
My code is:
in YahooExtract.cs
 
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";
 
string name;
string email;
//#region IMailContactExtract Members
 
public string Extract(string username, string password)
{
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 );
 
postToLogin.Add("login", username);
postToLogin.Add( "passwd", 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;
}
email = items[ 4 ];
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;
//return result;
}
catch
{
}
//return list;
//return name;
return email;
}
 

}
 
//In IMailContactExtract.cs
public interface IMailContactExtract
{
string Extract(string username, string password);
}
 
//In MailContact.cs
public class MailContact
{
private string _email = string.Empty;
private string _name = string.Empty;
 
public string Name
{
get { return _name; }
set { _name = value; }
}
 
public string Email
{
get { return _email; }
set { _email = value; }
}
}
 
//In Default.aspx.cs
protected void LnkBtnAtGetContacts_Click(object sender, EventArgs e)
{
//MailContactList list = null;
 
YahooExtract extractor = new YahooExtract();
// bool res = extractor.Extract(new NetworkCredential(TxtATUsername.Text.ToString(),TxtATPassword.Text.ToString()), out list);
//Console.WriteLine(res ? "Succeeded" : "Failed");
string email= extractor.Extract(TxtATUsername.Text.ToString(),TxtATPassword.Text.ToString());
Response.Write(email);
 
}
Posted 20-Feb-13 1:59am
mona_12378
Edited 20-Feb-13 16:53pm
v2
Comments
Sandeep Mewara at 20-Feb-13 8:05am
   
How do you expect someone to suggest you why so without seeing what you have done to get it?
 
My suggestion, edit/update the question using 'Improve question' and add the related code snippet.
ryanb31 at 20-Feb-13 10:26am
   
You'll have to provide the code snippet. Are you using the yahoo api or a manual hack?
   
My guess is that you didn't export the contact properly from Yahoo. You should expert the contacts as CSV (comma separated).

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

My guess is that you didn't export the contact properly from Yahoo. You should expert the contacts as CSV (comma separated).
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 210
1 Richard MacCutchan 100
2 kbrandwijk 90
3 ProgramFOX 80
4 Sandeep Singh Shekhawat 70
0 Sergey Alexandrovich Kryukov 9,050
1 OriginalGriff 8,151
2 CPallini 2,613
3 Richard MacCutchan 2,221
4 Abhinav S 1,928


Advertise | Privacy | Mobile
Web02 | 2.8.140827.1 | Last Updated 20 Feb 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100