diff --git a/emails.php b/emails.php
index 1e7b768..4389090 100644
--- a/emails.php
+++ b/emails.php
@@ -58,42 +58,47 @@
 }
 
 function _get_friend_email($data) {
-	$email = "Dear " . $data['firstname'] . ",\n\n";
-	$email .= "Thank you for your donation.\n\n";
-	$email .= "We are happy to welcome you as a Friend of Eclipse. You are helping us make Eclipse even better.\n\n";
-	$email .= "Friend of Eclipse Benefits\n\n";
-	$email .= "\t-\tYou may use the Friend of Eclipse logo. It can now be found on your account page: " . FOE_LOGO_LINK . "\n";
-	$email .= "\t-\tYou get access to the Mirror Site here: " . MIRROR_SITE . "\n";
-	$email .= "\t-\tYou get 40% off prints & 50% off ebooks at http://oreilly.com using the discount code: " . OREILLY_CODE . "\n\n";
-	$email .= "Regards,\nThe Eclipse Foundation";
+    $email = "Dear " . $data['firstname'] . ",\n\n";                                
+    $email .= "Thank you for your donation. We are happy to welcome you as a Friend of Eclipse.\n\n";
+    $email .= "In recognition of your donation, we are pleased to provide the following Friend of Eclipse benefits:\n\n";
+    $email .= "\t-\tYou may use the Friend of Eclipse logo. It can be found here: " . FOE_LOGO_LINK . "\n";
+    $email .= "\t-\tYou get access to the Mirror Site here: " . MIRROR_SITE . "\n"; 
+    $email .= "\t-\tYou get 40% off prints & 50% off ebooks at http://oreilly.com using the discount code: " . OREILLY_CODE . "\n\n";
+    $email .= "The Eclipse Foundation relies upon our users' generosity to make Eclipse a great place for open source software development. On behalf of the entire community, thank you for making it possible.\n\n";
+    $email .= "Best Regards,\n\nMike Milinkovich\nExecutive Director\nEclipse Foundation\n\n";
+    $email .= "http://www.eclipse.org/donate/\nfriends@eclipse.org\n\n";            
+    $email .= "P.S. We have a Corporate Sponsor program for companies that want to support the Eclipse community.  Please encourage your employer to contribute to the success of open source software at Eclipse.\nhttp://www.eclipse.org/corporate_sponsors/";
 	return $email;
 }
 
 function _get_best_friend_email($data) {
-	$email = "Dear " . $data['firstname'] . ",\n\n";
-	$email .= "Thank you for your donation.\n\n";
-	$email .= "We are happy to welcome you as a Best Friend of Eclipse. You are helping us make Eclipse even better.\n\n";
-	$email .= "Best Friend of Eclipse Benefits\n\n";
-	$email .= "\t-\tYou may use the Friend of Eclipse logo. It can now be found on your account page: " . FOE_LOGO_LINK . "\n";
-	$email .= "\t-\tYou get access to the Mirror Site here: " . MIRROR_SITE . "\n";
-	$email .= "\t-\tYou get 40% off prints & 50% off ebooks at http://oreilly.com using the discount code: " . OREILLY_CODE . "\n";
-	$email .= "\t-\tYou may use the friend discount to attend the three upcoming EclipseCon events. The discount code is: " . ECLIPSECON_CODE . "\n";
-	$email .= "\t-\tYou get an Eclipse T-Shirt! Claim it here: " . $data['tshirt_link'] . "\n\n";
-	$email .= "Regards,\nThe Eclipse Foundation";
+    $email = "Dear " . $data['firstname'] . ",\n\n";                                
+    $email .= "Thank you for your generous donation. We are happy to welcome you as a Best Friend of Eclipse.\n\n";
+    $email .= "In recognition of your donation, we are pleased to provide the following Best Friend of Eclipse benefits:\n\n";
+    $email .= "\t-\tYou may use the Friend of Eclipse logo. It can be found here: " . FOE_LOGO_LINK . "\n";
+    $email .= "\t-\tYou get access to the Mirror Site here: " . MIRROR_SITE . "\n"; 
+    $email .= "\t-\tYou get 40% off prints & 50% off ebooks at http://oreilly.com using the discount code: " . OREILLY_CODE . "\n";
+    $email .= "\t-\tYou qualify for a Best Friend discount to attend an EclipseCon conference. The amount depends on the event but use the discount code: " . ECLIPSECON_CODE . "\n";
+    $email .= "\t-\tYou get an Eclipse T-Shirt! Claim it here: " . $data['tshirt_link'] . "\n\n";
+    $email .= "The Eclipse Foundation relies upon our users' generosity to make Eclipse a great place for open source software development. On behalf of the entire community, thank you for making it possible.\n\n";
+    $email .= "Best Regards,\n\nMike Milinkovich\nExecutive Director\nEclipse Foundation\n\n";
+    $email .= "http://www.eclipse.org/donate/\nfriends@eclipse.org\n\n";            
+    $email .= "P.S. We have a Corporate Sponsor program for companies that want to support the Eclipse community.  Please encourage your employer to contribute to the success of open source software at Eclipse.\nhttp://www.eclipse.org/corporate_sponsors/";
 	return $email;
 }
 
 function _get_webmaster_idol_email($data) {
-	$email = "Dear " . $data['firstname'] . ",\n\n";
-	$email .= "Thank you for your donation.\n\n";
-	$email .= "We are happy to welcome you as a Webmaster Idol. You are helping us make Eclipse even better.\n\n";
-	$email .= "Webmaster Idol Eclipse Benefits\n\n";
-	$email .= "\t-\tYou may use the Friend of Eclipse logo. It can now be found on your account page: " . FOE_LOGO_LINK . "\n";
-	$email .= "\t-\tYou get access to the Mirror Site here: " . MIRROR_SITE . "\n";
-	$email .= "\t-\tYou get 40% off prints & 50% off ebooks at http://oreilly.com using the discount code: " . OREILLY_CODE . "\n";
-	$email .= "\t-\tYou may use the friend discount to attend the three upcoming EclipseCon events. The discount code is: " . ECLIPSECON_CODE . "\n";
-	$email .= "\t-\tYou get an Eclipse T-Shirt! Claim it here: " . $data['tshirt_link'] . "\n";
-	$email .= "\t-\tYou get the eternal gratitude of the Eclipse Webmasters!\n\n";
-	$email .= "Regards,\nThe Eclipse Foundation";
+    $email = "Dear " . $data['firstname'] . ",\n\n";                                
+    $email .= "Thank you for your generous donation. We are happy to welcome you as a Best Friend of Eclipse.\n\n";
+    $email .= "In recognition of your donation, we are pleased to provide the following Best Friend of Eclipse benefits:\n\n";
+    $email .= "\t-\tYou may use the Friend of Eclipse logo. It can be found here: " . FOE_LOGO_LINK . "\n";
+    $email .= "\t-\tYou get access to the Mirror Site here: " . MIRROR_SITE . "\n"; 
+    $email .= "\t-\tYou get 40% off prints & 50% off ebooks at http://oreilly.com using the discount code: " . OREILLY_CODE . "\n";
+    $email .= "\t-\tYou qualify for a Best Friend discount to attend an EclipseCon conference. The amount depends on the event but use the discount code: " . ECLIPSECON_CODE . "\n";
+    $email .= "\t-\tYou get an Eclipse T-Shirt! Claim it here: " . $data['tshirt_link'] . "\n\n";
+    $email .= "The Eclipse Foundation relies upon our users' generosity to make Eclipse a great place for open source software development. On behalf of the entire community, thank you for making it possible.\n\n";
+    $email .= "Best Regards,\n\nMike Milinkovich\nExecutive Director\nEclipse Foundation\n\n";
+    $email .= "http://www.eclipse.org/donate/\nfriends@eclipse.org\n\n";            
+    $email .= "P.S. We have a Corporate Sponsor program for companies that want to support the Eclipse community.  Please encourage your employer to contribute to the success of open source software at Eclipse.\nhttp://www.eclipse.org/corporate_sponsors/";
 	return $email;
 }
