This is how i am approaching to trigger 

```
trigger UpdateAccountEmails on Contact (after update){  
    //extract all contact Ids for use in query
    contact all_contact = [select id,name,email from contact];
    Set<Id> contactIds = new Set<Id>();
    for(Contact c : Trigger.new){
        if(trigger.oldMap.get(c.Id).Email != c.Email){//email has been changed
            contactIds.add(c.Id);
        }
    }

    List<Account> accounts = new List<Account>();
    for(Contact c : [SELECT Id, Account.Id, Account.Custom_Email__c FROM Contact WHERE Id IN :contactIds]){
        //assign the new email
        c.recordPageCont.Custom_Email__c = Trigger.newMap.get(c.Id).Email;
        //extract the account into our list
        accounts.add(c.getSobject('Account'));
    }

    update accounts;
}

```