Hello Every one,
i want to export contacts of yahoo and msn , i tried for yahoo but it is not working . please help me..
Loading
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question
It is the same account you read, post and publish with — and you will come straight back to this page.
Suthish NairPosted Feb 27, 2011, 1:37 PM
raksha nirwanPosted Feb 27, 2011, 4:38 AM
private const string _authUrl = "https://login.yahoo.com/config/login_verify2?.intl=in&.src=ym";
private const string _loginPage = "https://login.yahoo.com/config/login_verify2?.intl=in&.src=ym";
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";
private string username = string.Empty;
private string password = string.Empty;
private ArrayList Extract(string uname, string upass)
{
bool result = false;
ArrayList myarray = new ArrayList();
//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");
//Dim login As String = credential.UserName.Split("@"c)(0)
string login = uname.Split('@').GetValue(0).ToString();
postToLogin.Add("login", login);
postToLogin.Add("passwd", upass);
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) Then
//Return False
//End If
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');
//Dim list1 As Hashtable()
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;
myarray.Add(email);
//list.Add(mailContact)
}
}
}
result = true;
}
catch
{
}
return myarray;
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
ArrayList contacts = new ArrayList();
StringBuilder sb = new StringBuilder();
contacts = Extract(txtusername.Text.Trim(), txtpassword.Text.Trim());
int j = 1;
for (int i = 0; i < contacts.Count; i++)
{
if (contacts[i].ToString().Trim() != "")
{
sb.Append("(" + j + ") " + contacts[i].ToString() + "
");
j++;
}
}
dvcontacts.InnerHtml = sb.ToString();
}
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; }
}
public string FullEmail
{
get { return Email; }
}
}
I used this code for export yahoo contact. but it is not working.
Jaganathan BantheswaranPosted Feb 26, 2011, 9:56 AM
Can you attach the code?. so that we can know what is the problem with that.