You can use userinfo class in apex to obtain the information related to logged in user.

https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_methods_system_userinfo.htm

You can get Id using userinfo.getUserId() and if userinfo class is not able to provide info use query to query those fields .

On VF you will need to use 

     <apex:outputText value="{!$User.Id}">

You are using outputfield and hence you are not able to save the code

Edit::

A sample getter setter User object type variable will be handy

    public class MailExtension{
      public user currentuser{get;set;}
      public MailExtension(ApexPages.StandardController cont){
         opp =(Opportunity) cont.getRecord();
         currentuser=new User();
         currentuser=[Select Id,Name,Email from User where Id=:userinfo.getuserId()];
      } 
    }

A sample VF tag or mark up will be as follows 

    <apex:outputfield value="{!currentuser.Id}"/>
    <apex:outputfield value="{!currentuser.Email}"/>