Online Marketing-Email Strategy

Email Strategy  help you maximize your email marketing efforts. Learn about deliverability, effective communication, email formatting, tracking ROI .


  • How email strategy can help you meet your marketing objectives through lead generation, lead nurturing, direct sales, and customer retention.
  • The key components of lead generation via email, utilizing calls to action and landing pages, and the advantages of using in-house and third-party email lists.
  • The advantages of building a "drip campaign" into your email strategy to nurture and move leads through the sales cycle.
  • The benefits of direct sales emails and what you can do to successfully create high sales turnaround using calls to action and deep linking to appropriate pages.
  • The value of a quality email strategy that will help you retain customers and build relationships with your readers, keeping your brand at the top of their minds.

Most Popular Keywords


  • Google Trends: Allows you to tap into Google's database of searches, to determine which keywords are most popular. View the volume of search queries over time (since 2004) worldwide or by regions and subregions, by languages, categories, and in Google properties such as news, image, or product search. Compare multiple terms, as well. Offers a list of what is trending now in Hot Searches.
  • Google Autocomplete: Google's Autocomplete is a tool that can help round out your research by providing keywords as seen through the searchers experience. When a searcher begins to type into the search box on Google.com, additional keywords are offered for searches that could be similar to what is typed. Google's algorithm works to predict search queries in real-time based on indexed web pages, personalized search history, other users' search activity, and Google+ (for person's name). Since the results are personalized, you may wish for more control over the Autocomplete feature. This can be accomplished by logging out of Google, turning off customizations, deleting web history, and Google+ settings.
  • Yahoo Buzz Log: Shows top overall keyword searches by Yahoo users with rank, buzz score, and how the search volume has moved in rank. There are additional options to narrow the buzz log by categories such as actors, movies, music, etc.
  • AOL Search Trends: Lists the top 50 search trends both hourly and daily on AOL. Data in AOL contains web and image searches (powered by Google), video (powered by Blinkx), News, Shopping, Maps, and Yellow Pages (powered by various providers).
  • YouTube Trends: Provides insights into popular videos based on keywords and video views. Trending Topics are algorithmically-generated topics from keywords in the title, tags, and description of the video within sets of videos that are currently rising in popularity. Trending videos are based on embedded video views and views on YouTube.
  • Google AdWords Keyword Tool: Enter a term or terms, to see search volume and keyword competition. Advanced options and filters allow you to refine by locations and languages and by desktop or mobile. 
  • Fastest Falling Global Queries

    Who lost the most traction in 2011? As Google Zeitgeist reveals the queries that fell fastest this year; see if you can spot the trend:
    1. MySpace 
    2. Hi5 
    3. Mebo (we believe they meant Meebo and not the misspelling) 
    4. Nasza Klasa (social network) 
    5. Netlog (social network) 
    6. Baidu 
    7. Wer Kennt Wen (social network) 
    8. Meinvz (social network) 
    9. Hotmail Correo 
    10. Delta Airlines

    Fastest Rising People Queries in the World

    Google has released their Zeitgeist 2011 data, complete with the top 10 search queries in sports, entertainment, news, and more for 48 countries. Zeitgeist’s lists allow you to compare results of any two queries on each list across various sliding time spans on an interactive graph, with hyperlinked icons indicating where news articles are available.
    Global data shows that Rebecca Black was the fastest rising query in the world, with searches for her name increasing more than 10,000 percent in 2011. Google+ and Ryan Dunn were the next fastest growing queries worldwide.
  • Download file using curl in php


    You would need to feed CURLOPT_URL the full URL to the file. Also if you want to download a file you might want to save it somewhere.

    Working example:
    $curl = curl_init();
    $file = fopen("ls-lR.gz", 'w');
    curl_setopt($curl, CURLOPT_URL, "ftp://ftp.sunet.se/ls-lR.gz"); #input
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FILE, $file); #output
    curl_setopt($curl, CURLOPT_USERPWD, "$_FTP[username]:$_FTP[password]");
    curl_exec($curl);
    curl_close($curl);
    fclose($file);
    
    
    
    
    
    
    I used the ftp_* functions for ftp, in place of curl, because curl 
    tried to change directories, but its not allowed on this ftp server, so 
    the code i used is;
    $local_file = 'output.rar';
    $server_file = '/somedir/1/bar/foo/somearchive.rar';
    $ftp_user_name='anonymous';
    $ftp_user_pass='mozilla@example.com';
    $ftp_server='server.host';
    // set up basic connection
    $conn_id = ftp_connect($ftp_server);
    
    // login with username and password
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    
    /* uncomment if you need to change directories
    if (ftp_chdir($conn_id, "<directory>")) {
        echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
    } else { 
        echo "Couldn't change directory\n";
    }
    */
    
    // try to download $server_file and save to $local_file
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
        echo "Successfully written to $local_file\n";
    } else {
        echo "There was a problem\n";
    }
    
    // close the connection
    ftp_close($conn_id);
    It works !!

    PHP error: Cannot modify header information


    You cannot use header() once text has been output to the browser. As your header.php include presumably outputs HTML, header() cannot be used.
    You can solve this in a couple ways:
    • Move the if statement above the header include (this won't work, as you've indicated in comments that header.php sets the uid session and other vital stuff).
    • Call ob_start() at the top of the script to buffer the output.

    You can't issue HTTP headers after you have outputted content.

    unction Redirect($url) {
            flush(); // Flush the buffer
            header("Location: $url"); // Rewrite the header
            die;
        }
    
    
    
    
    function Redirect($url) {
            flush(); // Flush the buffer
            ob_flush();
            header("Location: $url"); // Rewrite the header
            die;
        }
    
    
    
    
    To ensure your error reporting level is the same across environments, you can set it in your application using error_reporting() and ini_set('display_errors', 1)
    Also check your .php files for any whitespace before the opening tag and after the closing tag.
    In addition to the points mentioned above, ensure you are not outputting anything before the headers are set, for example the following code would produce an error similar to the one you are receiving:
    echo 'Hello, World';
    header('Location: http://www.somesite.com');

    PHP Curl check for file existence


    a PHP program that downloads a pdf from a backend and save to a local drive.
    
    
    $url = "http://wedsite/test.pdf";
    $path = "C:\\test.pdf;"
    downloadAndSave($url,$path);
    
    function downloadAndSave($urlS,$pathS)
        {
            $fp = fopen($pathS, 'w');
    
            $ch = curl_init($urlS);
    
            curl_setopt($ch, CURLOPT_FILE, $fp);
            $data = curl_exec($ch);
    
            $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            echo $httpCode;
            //If 404 is returned, then file is not found.
            if(strcmp($httpCode,"404") == 1)
            {
                echo $httpCode;
                echo $urlS; 
            }
    
            fclose($fp);
    
        }
    
    
    You can do this with a separate curl HEAD request:
    curl_setopt($ch, CURLOPT_NOBODY, true);
    $data = curl_exec($ch);
    
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    When you actually want to download you can use set NOBODY to false.

    PHP: How do I enable error reporting?

    How to create update or remove symbolic or soft link Linux


    Symbolic links , Symlink or Soft link in Unix are very important concept to understand and use in various UNIX operating systems e.g. Linux , Solaris or IBM AIX. Symlinks gives you so much power and flexibility that you can maintain things quite easily.I personally feel that along with find, grep and other UNIX commands, command to create soft link and update soft link i.e. ln -s  is also must for any one working in UNIX machine. Whenever I do scripting or write any UNIX script I always write for symlinks rather than pointing to absolute path of directories in UNIX. It gives you flexibility of changing the symlink or soft link without making any change on your tried and tested scripts. I have worked on many different core Java projects which run on Linux and UNIX machine and make extensive use of UNIX symbolic links or symlinks. All my project which are on finance domain and on electronic trading systems have there server running on Linux,  Since speed is major concern in online stock or futures trading where orders has to hit the market within micro seconds Linux server is ideal choice for electronic and fix trading systems and since your server is on UNIX you have to be expert of Unix command to work efficiently and these articles are my result of those effort to learn and share new UNIX commands. In this UNIX fundamental tutorial we will see How to create soft link in UNIX, How to update soft link and Difference between Soft link and Hard link in Unix and Linux. By the way this UNIX command tutorial is  in continuation of my earlier article top networking commands in Unix  and CVS command examples ,  if you haven’t read already you may find some useful information based on my experience in Unix and Linux commands.



    First difference between soft link and hard link is that  Unix Soft links are pointers to programs, files, or directories located elsewhere (just like Windows shortcuts) , while Unix Hard links are pointers to programs and files, but NOT directories.
    2) Second major difference between UNIX soft link and hard link is that If the original program, file, or directory is renamed, moved, or deleted, the soft link is broken and it will show in red color if you using ls -lrt --color option. On the other hand, If the original program or file is renamed, moved, or deleted, the hard link is NOT broken
    3) One not so important difference on soft link vs hard link is that,  If you type ls -F you can see which files are UNIX soft links because they end with @

    4)  Another difference between soft link vs hard link is how you create them, To create a soft link called "current" that points to a file or directory called "new_package", use this: ln -s new_package latest  to remember this command always remember that name of soft link comes as last argument. On the other side to create a UNIX hard link called myhardlink.txt that points to a file called myfile.txt, use this: ln myfile.txt myhardlink.txt

    5) One more significant difference on soft link and hard link on UNIX or Linux is that, soft link can point to a network mounted directory also. For creating unix soft link remember to use option "-s" with UNIX link command "ln". While, Hard links in UNIX cannot span disk drives, so you CANNOT have a hard link on /dev/hdb that refers to a program or file on /dev/hda

    FTP 550 Access is denied Error

    Probably the Firewall from Client A which is preventing this. FTP also requires a data channel to send its information

    How to list directory content of remote FTP, recursively?

    IT can do almost everything bash can do, albeit remotely.


    $ lftp mirror.3fl.net.au
    lftp mirror.3fl.net.au:~> ls                          
    drwxr-xr-x  14 root     root         4096 Nov 27  2007 games
    drwx------   2 root     root        16384 Apr 13  2006 lost+found
    drwxr-xr-x  15 mirror   mirror       4096 Jul 15 05:20 pub
    lftp mirror.3fl.net.au:/> cd games/misc
    lftp mirror.3fl.net.au:/games/misc>find
    ./
    ./dreamchess/
    ./dreamchess/full_game/                                                      
    ./dreamchess/full_game/dreamchess-0.2.0-win32.exe                                      
    ./frets_on_fire/
    ./frets_on_fire/full_game/                                                      
    ./frets_on_fire/full_game/FretsOnFire-1.2.451-macosx.zip                                  
    ./frets_on_fire/full_game/FretsOnFire-1.2.512-win32.zip
    ./frets_on_fire/full_game/FretsOnFire_ghc_mod.zip
    ./gametap_setup.exe
    ......
    lftp mirror.3fl.net.au:/games/misc> du gametap_setup.exe 
    32442   gametap_setup.exe
    lftp mirror.3fl.net.au:/games/misc> du -sh gametap_setup.exe 
    32M     gametap_setup.exe
    lftp mirror.3fl.net.au:/games/misc> 

    Difference between active and passive FTP?


    Active and passive are the two modes that FTP can run in. FTP uses two channels between client and server, the command channel and the data channel, which are actually separate TCP connections. The command channel is for commands and responses, the data channel is for actually transferring files. It's a nifty way of sending commands to the server without having to wait for the current data transfer to finish.
    In active mode, the client establishes the command channel (from client port X to server port 21(b)) but the server establishes the data channel (from server port 20(b) to client port Y, where Y has been supplied by the client).
    In passive mode, the client establishes both channels. In that case, the server tells the client which port should be used for the data channel.
    Passive mode is generally used in situations where the FTP server is not able to establish the data channel. One of the major reasons for this is network firewalls. While you may have a firewall rule which allows you to open up FTP channels to ftp.microsoft.com, Microsoft's servers may not have the power to open up the data channel back through your firewall.


    Active mode:
    • Client opens up command channel from client port 2000(a) to server port 21(b).
    • Client sends PORT 2001(a) to server and server acknowledges on command channel.
    • Server opens up data channel from server port 20(b) to client port 2001(a).
    • Client acknowledges on data channel.
    Passive mode:
    • Client opens up command channel from client port 2000(a) to server port 21(b).
    • Client sends PASV to server on command channel.
    • Server sends back (on command channel) PORT 1234(a) after starting to listen on that port.
    • Client opens up data channel from client 2001(a) to server port 1234(a).
    • Server acknowledges on data channel.