Software and Web Development Company

Contact Importer : Frequently Asked Questions

Here are brief explanations for some of the questions that you may have about Improsys :: Products :: Contact Importer.

Why choose Improsys Contact Importer?

Improsys is the first company in the world to introduce Contact Importer as a product.
Improsys has an extensive working experience with the Contacts Importer.
Improsys Contact Importer has been tested and trusted by many customers around the world.
Improsys Contact Importer is always updated and very easy to install and update.
Improsys has an Automated Products and Update Delivery System.
Improsys has a dedicated team working behind Contact Importer to constantly keep it running.

Back to Top

Does the Hotmail Contact Importer use API or web scrapping?

Hotmail contact importer uses both API and web scrapping. Actually we provide two versions. One uses API and the nother uses web scrapping for fetching contacts. If you need to use Contact Importer in a high traffic website, then the web scraping version is perfect for you.

Back to Top

Are sources well documented?

Yes, the source code is documented and very easy to understand.

Back to Top

Is the PHP source code encrypted?

No, the PHP source code is not encrypted. You will get all lines of the code.

Back to Top

How many files are in the PHP Contact Importer and what do they do?

Here are the details of the files PHP Contact Importer uses.

index.php - Demonstrates how to use our PHP contact importer library.
index2.php - Demonstrates how to use our PHP contact importer library. .[without domain list]
abookimport.php - Main API file. This is the only file you need in your application in order to use our contact importer library. This file dynamically includes a contact importer engine file depending on the user supplied email address. If the user's choice is to import from hotmail, then it includes hotmail.php.

csvutils.php - CSV functionalities library. Don't change its code. Change is not recommended.
WebUtils.php - Cookie processing library. Don't change its code. Change is not recommended.
grab_globals.lib.php - Grabs global variables in case PHP is set to global variables off.
XMLParser.php - Contains code for parsing XML.

hotmail.php- Hotmail importer engine. Don't change its code. Change is not recommended.
gmail.php- Ymail importer engine. Don't change its code. Change is not recommended.
yahoo.php- Yahoo importer engine. Don't change its code. Change is not recommended.
aol.php- Aol importer engine. Don't change its code. Change is not recommended.

126.php- 126 importer engine. Don't change its code. Change is not recommended.
163.php- 163 importer engine. Don't change code of it.Change is not recommended.
daum.php- daum importer engine. Don't change its code. Change is not recommended.
fastmail.php- fastmail importer engine. Don't change its code. Change is not recommended.
indiatimes.php- indiatimes.com importer engine. Don't change its code. Change is not recommended.
interia.php- interia importer engine. Don't change its code. Change is not recommended.
libero.php- libero importer engine. Don't change its code. Change is not recommended.
mac.php- mac importer engine. Don't change its code. Change is not recommended.
lycos.php- lycos importer engine. Don't change its code. Change is not recommended.
linkedin.php- linkedin.com importer engine. Don't change its code. Change is not recommended.
maildotcom.php- maildotcom importer engine. Don't change its code. Change is not recommended.
mailru.php- mailru importer engine. Don't change its code. Change is not recommended.
mynet.php- mynet importer engine. Don't change its code. Change is not recommended.
qq.php- qq importer engine. Don't change its code. Change is not recommended.
rambler.php- rambler.com importer engine. Don't change its code. Change is not recommended.
rediff.php- rediff importer engine. Don't change its code. Change is not recommended.
sina.php- sina importer engine. Don't change its code. Change is not recommended.
web.php- web importer engine. Don't change its code. Change is not recommended.
yandex.php- yandex importer engine. Don't change its code. Change is not recommended.
rediffXMLParser.php- Contains code for parsing XML.

All importer engine class containing three common functions, they are
login($username,$password); Used for login
get_address_page
(); Used to get address page
parser($str)
; Used to retreive contacts in two array, they are $email_array and $name_array

 

Back to Top

What is the update process for the PHP Version of Contact Importer?

When a webmail changes then we have to update our importer, we update that webmail's contact importer engine and send that to our clients. If hotmail.com changes then we update hotmail.php and send that. That's why we don't recommend that you to change the code for hotmai.php/gmai.php/yahoo.php or aol.php.

 

Back to Top

For how long I will receive free updates?

You will receive six month's worth of free updates after purchasing Contact Importer.

 

Back to Top

How much is the update fee?

Please check Contact Importer : Update Service.

 

Back to Top

How frequently do webmails change?

Webmails changes at least once within two months. Sometimes they change twice in a week.

 

Back to Top

How can I use the ASP Contact Importer component?

It does not require having any ActiveX component installed. Just place the files in your server.

 

Back to Top

What is the syntax of using ASP ContactImporter component in VB Script?

Set cimp= server.CreateObject("IMPContactImporter.ContactImporter")
cimp.contactimporter(userId,password,host)

'Example:

'To access contacts from improsys@hotmail.com .
if(cimp.contactimporter("improsys", "123456", "hotmail.com"))then
 numberOfContacts=cimp.ContactsLength
 
'cimp.DisplayName is containing Names of contacts

'cimp.Email is containing emails of contacts


'To print all contacts
for i=0 to (numberOfContacts-1)
  response.write("Name=" & cimp.DisplayName(i))
  response.write("Name=" & cimp.Email(i))
 next 

else
  response.Write "Invalid login"
end if

Back to Top

What is the syntax for using the ContactImporter .Net component in VB.Net?

Dim ci As New ContactImporter("email_id", "password", "email_type")

'Example:

'To access contacts from improsys@hotmail.com . example dim ci as new

'ContactImporter("improsys", "123456", "hotmail.com")

'To access contacts from improsys@gmail.com . example dim ci as new

'ContactImporter("improsys", "123456", "gmail.com")

'To access contacts from improsys@yahoo.com . example dim ci as new

' ContactImporter("improsys", "123456", "yahoo.com")

ci.login()

If ci.logged_in = True Then

ci.getcontacts()

'ci.nameArray is containing Names of contacts

'ci.emailArray is containing emails of contacts

'To print all contacts

Dim i As Integer
For i = 0 To ci.nameArray.Length
    Response.Write("name=" & ci.nameArray(i))
    Response.Write("email=" & ci.emailArray(i))
Next

Else
     Response.Write("Incorrect Username or Password")
End If

Back to Top

What is the syntax for using the ContactImporter .Net component in C#?

ContactImporter ci=new ContactImporter("email_id","paasoword","email_type.com"); Example: //To access contacts from improsys@hotmail.com . example dim ci as new
ContactImporter("improsys","123456","hotmail.com")

//To access contacts from improsys@gmail.com . example dim ci as new
ContactImporter("improsys","123456","gmail.com")

//To access contacts from improsys@yahoo.com . example dim ci as new
ContactImporter("improsys","123456","yahoo.com")
    ci.login();

    if(ci.logged_in)
    {
     ci.getcontacts();

    for(int i=0;i<emailArray.Length;i++)
       {
             Response.write(ci.nameArray[i]);    
             Response.write(ci.emailArray[i]);
        }
    }


Back to Top

What is the syntax for using the ContactImporter component from Ruby?

ci=Getway.new("email-id","password","email_type")

Example:

require 'Getway.rb'

#For improsys@hotmail.com
ci=Getway.new("improsys","123456","hotmail")

#For improsys@yahoo.com
ci=Getway.new("improsys","123456","yahoo")

#For improsys@gmail.com
ci=Getway.new("improsys","123456","gmail")

#For improsys@aol.com
ci=Getway.new("improsys","123456","aol")

result={}
result=ci.interface
if(result[:success]==true)
  contacts=conts.get_contacts
  if(contacts[0][:name].to_s!="" && contacts[0][:email].to_s!="")
    for i in 0..(contacts.length-1)
        print "Name:  "+ contacts[i][:name].to_s+"\n"
        print "Email:  "+  contacts[i][:email].to_s+"\n"
    end  
  else
    print "No address found"
  end 
else
    print "Invalid login"
end


Back to Top

What is the syntax for using the ContactImporter component from Rails?

1. Code in controller:
 #The first line before the conrroller class:

       require "Getway.rb"

 #now in the index method
 @result={:success=>""}

 user_id="improsys"
 password="123"

 #For improsys@yahoo.com
 type="yahoo"  

 #For improsys@hotmail.com
 type="hotmail"  

 #For improsys@aol.com
 type="aol"  

 #For improsys@gmail.com
 type="gmail" 

 @result={:success=>""}
 @conts = Getway.new(user_id,password,type)
 @result=@conts.interface
 if(@result[:success]==true)
    @contacts=@conts.get_contacts
    if(@contacts[0][:name].to_s!="" && @contacts[0][:email].to_s!="")
      @len=@contacts.length
    else
      @len=0
    end 
 end 

  1. Code in the index.html.erb:

      <% if(@result[:success]==true)
           for i in 0..(@len-1)%>
             Name=  <%=(@contacts[i][:name]=="") ? "N/A":@contacts[i][:name]%><br>
             Email= <%=(@contacts[i][:email]=="") ? "N/A":@contacts[i][:email]%><br><br>
        <% end %>
      <% end %>

Back to Top

What is the syntax for using the ContactImporter component in Cold Fusion?

<!---For improsys@yahoo.com-->
<cfset type="yahoo">
<cfset username="improsys">
<cfset password="123456">

<!---For improsys@hotmail.com-->
<cfset type="hotmail">
<cfset username="improsys@hotmail.com">
<cfset password="123456">

<!---For improsys@aol.com-->
<cfset type="aol">
<cfset username="improsys">
<cfset password="123456">

<!---For improsys@gmail.com-->
<cfset type="gmail">
<cfset username="improsys">
<cfset password="123456">

<cfset login=false>
<cfset EmArray=ArrayNew(1)> 
<cfset NmArray=ArrayNew(1)>

<cfinclude  template="#type#.cfm" />
<cfif #login# is true>
         <cfset c=ArrayLen(EmArray) />
          <cfloop index = "i" from = "1" to = #c#>
             <cfoutput>Name= <cfif trim(NmArray[i]) is ""><i>NA</i><cfelse>#NmArray[i]#</cfif> </cfoutput><br>
            <cfoutput>Email= #EmArray[i]# </cfoutput><br><br>
          </cfloop>
          <cfif ArrayLen(EmArray) is 0>
            <h1>No address found</h1>
         </cfif>
     <cfelse>
            <h1>Invalid login</h1>
     </cfif>


Back to Top

What is the syntax for using the ContactImporter component in Perl?

#!/usr/local/bin/perl

use CGI qw(:standard);
use URI::Escape;
use WWW::Mechanize;
use HTTP::Cookies;

use Importer::Yahoo;
$importer = new Yahoo;
$username = "improsys";
$password = "123456";

if($importer->login($username,$password) eq "true")
      {
          my $str = $importer->get_address_page();
          my @contacts = $importer->parser($str);
          my $totalContact = @{@contacts[0]};
          my $i=1;

          foreach $contact (@{@contacts[0]})
          {
            print "Name: ".$contact."<br>";
            print "Email: ".$contacts[1][$i-1]."<br><br>";
            $i++;
          }

          if($totalContact eq 0)
          {
            print "No contact found.";
          }
      }
      else
      {
          print "Invalid Login.";
      }
      print end_html;




Back to Top

What is the update process for the Contact Importer .Net component?

We will send you the updated dll and source code.

 

Back to Top

When was Improsys Contact Importer released?

We released Contact Importer in 2004 and have been distributing and maintaining it successfully ever since.

 

Back to Top

How do you use Contact Importer JAVA in a Servlet?

Sample code to use in a Servlet

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import improsys.contactimport.common.*;

public class ContactImporterServlet extends HttpServlet
{

public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
try
{
String site = request.getParameter("site");
String userid = request.getParameter("userid");
String password = request.getParameter("password");

if(site.compareToIgnoreCase("hotmail"==0)
{
userid = userid + "@hotmail.com";
}
FourInOne importer = new FourInOne(userid,password);
importer.setType(site);
importer.doLogin();
Contacts contacts[] = importer.getContacts();

StringBuffer outString = new StringBuffer("<table><tr><th>Name</th><th>Email</th></tr>");
for(int i=0;i<contacts.length;i++)
{
sb.append("tr><td>"+contacts[i].getName()+"</td><td>"+contacts[i].getEmailAddress()+"</td></tr>" );
}
sb.append("<tr><td colspan=\"2\">Total contacts found : " + contacts.length + "</tr></table>");
out.print(sb.toString());
}
catch(Exception e)
{
out.print("<strong>Exception caugth : </strong>" + e.getMessage());
}

}

public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

doGet(request,response);

}

}

Back to Top

How do you use Contact Importer JAVA in a JSP page?

<%@ page language="java" contentType="text/html" %>

<% String user = request.getParameter("user"); %>
<% String password = request.getParameter("password"); %>
<% String parser = request.getParameter("parser"); %>
<% String userId = "";%>
<%
if(user == null) user = "";
if(password == null) password = "";
if(parser == null) parser = "AOL"; //default
if( user != null && user.length() > 0
&& password != null && password.length() > 0
&& parser != null && parser.length() > 0
)
{

try
{


userId = user;
userId = user;

if(parser.equals("HOTMAIL"))
userId = user+"@hotmail.com";

improsys.contactimport.common.FourInOne imp = new improsys.contactimport.common.FourInOne(userId, password);;

imp.setType(parser);

imp.doLogin();
if(!imp.isLoggedIn())
throw new Exception("Can not be logged in as " + user + " to " + parser.toLowerCase()+".com with the given password.");

improsys.contactimport.common.Contact al[] = imp.getContacts();
if (al==null)
throw new Exception("Unable to parse contacts for " + user + " at " + parser.toLowerCase()+".com");
%>
<table width="68%" border="0" align="center" cellpadding="1" cellspacing="0" bgcolor="#F2F1F0">
<tr>
<td width="100%">
<table border="0" align="center" cellpadding="2" cellspacing="0">
<tr align="center" bgcolor="#99FFFF">
<td colspan="2"> <font color="#006699" size="2" face="Arial, Helvetica, sans-serif">
<strong><%=parser%> Address Book for <%=user%><br>
</strong> <font face="Verdana, Arial, Helvetica, sans-serif">
Total Address found <%=al.length%> </font> </font> </td>
</tr>
<tr align="center" bgcolor="#99CCFF">
<td width="50%" align="left" style="PADDING-LEFT: 12px"> <font color="#000066" size="2" face="Arial, Helvetica, sans-serif">
<strong>Display Name</strong> </font> </td>
<td width="50%" align="left" bgcolor="#99CCFF" style="PADDING-LEFT: 12px">
<font color="#000066" size="2" face="Arial, Helvetica, sans-serif">
<strong>Email ID</strong> </font>
</td>
</tr>
<%
//show others
for(int i=0; i < al.length; i++)
{
%>
<tr>
<td align="left" style="PADDING-LEFT: 12px">
<%
if(al[i].getEmailAddress().equals(""))
{
%>

<td align="left" style="PADDING-LEFT: 12px"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<%if(al[i].getName().equals(""))
out.println("<i>NA</i>");
else
out.println(al[i].getName());
%>
</font>
</td>
<td style="PADDING-LEFT: 12px"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<%if(al[i].getEmailAddress().equals(""))
out.println("<i>NA</i>");
else
out.println(al[i].getEmailAddress());
%>
</font> </td>
</tr>
<%
}//for 1

if(al.length == 0)
{
%>
<tr align="center">
<td colspan="3" style="PADDING-LEFT: 12px"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<em>No Address found.</em> </font> </td>
</tr>
<%
}
}//try
catch(Exception e)
{
out.println("<p><div align=center><strong>"+e.getMessage()+"</strong></div></p>");
}

}//master if
%>
</table>
</table>

Back to Top

What are the dependency libraries for Contact Importer?

The following open source jakarta libraries are the only dependency for the contact-importer library :

Back to Top

Are the dependency libraries included in the deliverable package?

Yes, as the libraries used in contact importer are published under Apache 2.0 Licence, they can be distributed with commercial softwares. So, we packaged the required libraries in our deployment package for contact importer.

Back to Top

What is the minimum Jdk version for Contact Importer to work?

Jdk 1.4.2 or a higher version is required in order to get the Contact Importer working properly.

Back to Top

Do you provide any web scraping resources for free?

Yes, check out the article we published, Ins and Outs of Web Scraping

Back to Top

<< Go Back to Contact Importer Page >>