the first trouble into your code is that your trigger is not BULK read about it here
the next trouble is that you don't send email with Messaging.sendEmail
try the following:
trigger Test1 on Contact (after update) {
Messaging.reserveSingleEmailCapacity(trigger.size);
List<Messaging.SingleEmailMessage> emails = new List<Messaging.SingleEmailMessage>();
for (Contact c : trigger.new) { // walk through all records which is processed
Contact old = trigger.oldMap.get(c.Id); // get old record from oldMap
if (old.Email != c.Email ) { // check current email
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
email.setToAddresses(new String[] {c.Email};);
email.setReplyTo('XXX@example.com');
email.setSenderDisplayName('Mr Apex Tester');
email.setSubject('Subjected to Learning');
email.setPlainTextBody('You have just changed your SalesForce contact email from ' +
old.Email + ' to ' + c.Email +
'. If this was not intentional please log back into Salesforce.com and ammend you details.');
emails.add(email);
}
}
Messaging.sendEmail(emails);
}