There's no way to get the email address of a friend. An application can only get the email address of the current user that has approved the application on your site.
As for your custom code, that should still work. To our knowledge, there hasn't been any changes on how wall posts can be done through the API. There are restrictions in the App Policies that state when and how you can make such posts, but it sounds like you have those points mostly covered.
Thanks,
Alex