Send and Receive emails from your company’s account directly in Gmail

on November 16, 2011
(4 minute read)

If you have set up a new website or a company and want to send and receive emails with your company’s email address but don’t want to have multiple inboxes (specially when you manage more than 5 different email accounts) the best way to do it is to redirect all your emails to the same email account. And thanks to the power of Google Mail or Gmail you can manage unlimited accounts effortlessly and send and receive emails from different accounts easily into one inbox. Follow these two step-by-step guides to set up receiving and sending:

Receiving emails from your website to your email

Go to your website’s cPanel (if you don’t know what cPanel is then send this website to your web developer to do this for you) and click on Forwarding:

Then click on Add Forwarder:

Now fill in your email account name (what goes before the @ symbol) and select the domain you want to use, then forward it to your Gmail account like in the image:

Click on Add Forwarder and a success message will appear. You can now close cPanel. You must wait for a few minutes or even a few hours for the mail server to update and spread your new email account before it forwards emails correctly and you start receiving them.

Sending emails from your company’s email address

First of all make sure that emails sent to your company’s email address are successfully forwarded to your Gmail account, try sending a test email now and look in your Gmail account for the message to arrive. Once you open the message you should see your company’s email address in the To: field as in this screenshot:

If you are not receiving them then wait a few hours and try again later or check the Spam folder in case it went there.

Once you are receiving the emails you can set Gmail up to start sending emails with your company’s email address:

Go to the top right corner of Gmail and click Options > Mail settings:

The Settings page will open, click on Accounts and Import:

Now keep scrolling down until you see a Send email as section and a link to Add another email address you own, click that:

A popup window will open, on this step you need to fill in the name that will show when people receive an email from your company’s address and your company’s email address, then click on Next Step:

The easy and quick way now is to select Send through Gmail and click Next Step. If you want to send it through the SMTP servers of your company you will need to find them out asking your web developer or IT company. For HostGator accounts have a look at the Email client settings.

The next steps are pretty straight forward, a confirmation email will be sent to the company email address (which will be forwarded to your Gmail account), open it and click on the activation link to authorize Gmail to send emails as the company’s address.

Now, when writing a new email or replying to one, there will be a From: dropdown from which you will be able to choose the account to use:

Organizing your inbox

Once you start using multiple email accounts in the same inbox things may start to get unorganised. To solve this you can create tags. Go to your Gmail and go to Mail settings again (at the top right), then select the Filters tab and click Create a new filter and type in your company’s email address there and click Create filter with this search:

In this step select Apply label and create a new label:

You are done! Now, every time you receive an email to the company’s email address a label will appear next to the subject, you can customize the colour of the label and rename it to whatever you want.

In your inbox sidebar you will be able to filter messages sent only to that email address. Find below my own inbox, I have more than 10 email accounts configured and all of them have a different Label so that I keep everything organised:

Things I’m buying on Amazon this week

If you have any questions or anything is unclear let me know in the comments section below and I will do my best to help you.

Looking for cool gift ideas? lists hundreds of nice items and lets you know when they go on sale on Amazon.

Did you enjoy this article?

Thank with a coffee ☕

Or help me out by clicking one of these buttons:



  • ivandurham says:

    Awesome post dude. You are going really well in blogging. I like it really much. Keep up the good work !

  • Seth Etter says:

    Thanks for this, very helpful.

  • Jonas says:

    Thanks, just what I was looking for.
    Just one question, is it possible to output:


    but then replace the variables with the posted ones?
    in other words, is it possible to get the mail body of the mail 1 or 2 being send?

  • Andrea Moro says:

    Hello there,

    thanks for the interesting post. It gave me a lot of indication and I was wondering if you can perhaps help me to encapsulate the name of the sender in a session variable I can recall in the subsequent Thank you page.

    What I did in my function.php code is

    function get_contact_form_details($cf7){
    $_SESSION[‘cf7data’] = $cf7->posted_data;
    return false;
    add_action( ‘wpcf7_before_send_mail’, ‘get_contact_form_details’ );

    whereas in the thank you page I have this code


    but nothing appear on screen, like the value has never been stored. Any help?


  • Xavi Author says:

    Hi Andrea,

    I would suggest you to post your question here:

    The author of the plugin itself and thousands of developers will be able to help you faster than myself (I’m quite busy these days).


  • Cube3x says:

    Your post really helped me to add contact form 7 name and email to my email marketing site. Thanks for writing this post.

  • tonyb says:

    Thanks for this useful information.

    I used your plugin but had problems getting all your snippets of code to work.

    Then I realised the ones that use:

    $WPCF7_ContactForm-> worked, and those that use

    $wpcf7_data-> didn’t work.

    When I substituted the former for the latter, the other snippets worked as well. Wonderful!


  • Sanket Vyas says:

    I Use Contact form 7

    function save_to_the_database($cf7) {
    	global $wpdb;
    	//declare your varialbes, for example:
    	$id = $cf7->posted_data["id"];
    	$first_name = $cf7->posted_data["first-name"];
    	$email_txt = $cf7->posted_data["email-id"];
    	//echo $ticket_id;
    	$result = $wpdb->get_results( "INSERT INTO databasename (`id`, `firstname`, `emailid`) VALUES ('$id','$first_name','$email_txt')");

    Its work fine , also insert data into database.

    Now I have Three Contact Form, contact-form-7 id="411" contact-form-7 id="412" and contact-form-7 id="413"

    How can I trigger

    If id of form = 411, Insert into DB -> Table1
    If id of form = 412, Insert into DB -> Table2
    If id of form = 413, Insert into DB -> Table3
  • Javayim says:

    Just perfect, thanks !

  • MikeS says:

    Sorry but I’m new to to programming.
    Where exactly will I add this codes?

  • MarcelM says:

    Thanks Xavi this was a huge help. I spent a while searching and this is exactly what I needed.

  • Krony says:

    Thank you, exactly that’s what i’ve been searching for :)

  • Y-Love says:

    Thank you SO much for this, I’ve been searching everywhere for this. Fantastic post.

  • Patrick Van Hoof says:

    Hello Xavier

    My contact form title is ‘guide_pvh’

    The code is :
    //if ($title==’pvh_guide’){
    // $wpcf7_data->additional_settings = “on_sent_ok: \”location.replace(‘’);\””;
    // $wpcf7_data->additional_settings = “on_sent_ok: \”location.replace(‘’);\””;
    $wpcf7_data->additional_settings = “on_sent_ok: \”location.replace(‘’);\””;
    add_action(“wpcf7_before_send_mail”, “wpcf7_do_something”);

    but although CF7 told me that the message was sent, in my code the redirection does not work, you have an idea of the problem?

  • Etienne says:

    Hi Xavi, thanks a lot for this excellent post. As one of the (lower end) midweight PHP developer, this is what I needed.

  • barry says:

    Hello Xavi,

    I like to pick your brain: do you know if a CF7 form can have multiple thank-you redirections based on selected form values??

    i am testing with a custom function in functions.php but i dont see an appropiate hook.

    Any ideas, tips?

  • Xavi Author says:

    Hello barry,

    Yes, copy the code at “Redirecting someone to a different page depending on submitted data” but instead of $foo == "provider" use $_GET['the-select-field-name'] == "option1", etc.

    You may want put that in a plugin instead of the functions.php, the code at “Creating a WordPress plugin” in the article should work for you.


  • Laura says:

    Thank You! I have two CF7 forms and Flamingo installed. Would this be a way I can prevent one of the forms from being saved in the database from the Flamingo plugin?

  • Xavi Author says:

    Hi Laura, I can’t tell for sure but it should. Try returning an empty variable for $WPCF7_ContactForm.

  • Sohail says:

    Hi Xavi,

    Would this not work if write this in functions.php file ?

  • Xavi Author says:

    Hi Sohail,
    It will, just make sure to call it through the hook (add_action…).

  • Pratik says:

    “WordPress Contact 7 , make Conditional Email Body ??”

    Hello i am using Contact 7 form plugin. I get option to have HTML body for email template like



    Here [your-name] is actually value of textbox,I Dont want to make REQUIRED field,

    So what i want is IF THE NAME TEXT BOX VALUE is filled only then show labels and textbox value.Means show the above given Table in email ONLY IF IT IS FILLED .

    I searched a lot ,i didnt get any help on any website ,Please help me .Thanks

  • Xavi Author says:

    Hi Pratik,

    The email is in this variable: $wpcf7_data->mail['body'] so you can modify it freely. You can even empty it and start filling it conditionally:

    $wpcf7_data->mail['body'] = "";
    if ($wpcf7_data->posted_data['your-name']) {
        $wpcf7_data->mail['body'] .= "Hello [your-name]!";

    untested code

  • remco says:

    Hi Xavi,

    I like to redirect when email is not successfully send. Have you got an idea for this? Thanks, Remco

  • mary says:

    Hi Xavi,
    I’m new to wordpress so I’m having some issues.
    I need to change the recipient mail address based on a parameter that is called $citta (it means city)and is in the url of the page where the form is (ex. So, if $citta is equal to Rome the form must send to a certain address and so on.
    I created a plugin following your tutorial but when I compile the form it does not send anything.
    Could you possibly check my code? Thank you so much.
    A last question: what should I write in the recipient (To) field in Contact form editing page? I wrote [recipient] but I am not sure about it.

    function wpcf7_do_something (&$WPCF7_ContactForm) {
    if ($citta == “Rome”) {
    $WPCF7_ContactForm->mail[‘recipient’] = “Rome “;
    if ($citta == “Turin”) {
    $WPCF7_ContactForm->mail[‘recipient’] = “Turin “;
    if ($citta == “Florence”) {
    $WPCF7_ContactForm->mail[‘recipient’] = “Florence “;
    add_action(“wpcf7_before_send_mail”, “wpcf7_do_something”);

  • Rob W says:

    FYI, this code will need to be updated to reflect the latest version of WPCF7 (3.9)… The access to the posted data has changed. See:

    This was code example was causing headaches when posted_data was NULL… see link on how to access data.

  • Vir J says:

    Hey thanks Xavi for this wonderful article..

    Though it did not solved my problem but I was able to manage to catch the tweak required for adding this data to salesforce CRM and was successful.

    I had to replace $wpcf7_data->posted_data[‘your-name’] with $POST[‘your-name’] to get the data of form fields.. else it was all coming blank variables.

    Anyways, Thanks for the post.

    Good Luck.

  • Andrew says:

    Wanted to say thanks. With the new release at I wanted to mention that some of these have changed. Until I found that reference it was a little bit of a pain to debug!

    For example a new URL redirect is

    $goURL = '';
    $cfdata->set_properties( array( 'additional_settings' => "on_sent_ok: \"location = '".$goURL."';\"" ) );
  • Xavi Author says:

    Thanks a lot Vir J and Andrew, I’ll update the post ASAP.

  • Classic Mike says:

    Hi Thanks for the post. Just a heads up apparently the original developer has changed the way how you can get and modify the posted data in contact form 3.9. If you would like you can look the link here:

  • Tom says:

    Hi Xavi,

    When can we expect the ASAP update? I’m trying to use your code, but it’s not working with the new version of CF7.

  • alenb says:

    Passing the form object by reference in the function breaks feedback messages, though the message itself is sent through no worries

  • sikandar says:

    Superb, Thanks for this code

  • Piotr says:

    I want to create an form who will send email based on option selected from radio. Is it possible using contact form 7?

  • Philipp says:

    Whenever I activate my plugin the whole code is displayed on every single page of my website. Right above the actual content. What could that be?

  • Montina says:

    Hi Xavi,
    I m new in wp. I want to add two more fields in contact form and i m blind to do that. 1st I want to add date of birth which should use regex to check whether person is 18 yrs old or not.
    2nd I want to add Security number which again require some restrictions. can u help me plz I will be really thankful to u

  • Mike says:

    Cheers for this saved me a few hours researching :)

  • Faizyab says:

    Thumbs up!

  • Roee yossef says:

    Thanks for the article, i have a page with multiple forms and i’m am trying to send an event to analytics after a form is sent successfully.

    The thing is that i need a different event for each form, how can i get the form id (after submission) using PHP ?

  • Matías Saavedra says:


    First of all sorry about my english ( im from Southamerica )

    I have a question ..

    I have CF7 and i made a form , i need to change the subject of the email.

    For example: In the label Subject i used mail-tags like this

    “Email from the website – [nameperson] [lastname] [phonenumber]”

    The mail-tags works fine, but i want that the name and the lastname arrives in a capitalize format.

    Like this:

    “Email from the website – Hector Johnson 8238832”

    The problem is that the subject of the mail is like this.

    “Email from the website – hector johnson 8238832”

    I need a hook to change this please .. please help me with this issue.


  • Shahrukh says:

    Hello. Please help. Added this code to the file:

    function printDatas($cf7) {
    global $wpdb;
    //declare your varialbes, for example:
    $id = $cf7->posted_data[“id”];
    $first_name = $cf7->posted_data[“your-name”];
    $email_txt = $cf7->posted_data[“email-id”];

    In the template file I added this code: do_action(‘wpcf7_before_send_mail’);

    Did a redirect in the advanced settings of the Contact Form 7 did a redirect to the page where you display the data. But nothing is displayed what is the error?

  • Shahrukh says:

    function printDatas($cf7) {
    global $wpdb;
    //declare your varialbes, for example:
    $id = $cf7->posted_data[“id”];
    $first_name = $cf7->posted_data[“your-name”];
    $email_txt = $cf7->posted_data[“email-id”];
    echo $first_name;
    echo $email_txt;

Follow me for cool new products and interesting findings on graphic design, web development, marketing, startups, life and humor.

/*Twitter*/ !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);;js.src="//";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); /*Facebook (function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) {return;}js = d.createElement(s); = id;js.src = "//";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));*/ /*Google+*/ window.___gcfg = {lang: 'en-GB'};(function() {var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;po.src = '';var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);})();
Airbnb 25€ discount