Proxied Email

From Facebook Developer Wiki

Jump to: navigation, search
What is a proxied email address?
A proxied email address is a storable channel through which your application can contact your users. Each address is specific to an application/user pair, so that you don't have to worry about another application trying to spam your users.
Why would I want to use this?
Email is a core method of communication on the Internet, whether you're building an individual Web site, a Facebook application, or any other Internet property. For this reason, Facebook now offers additional support to make it easier to communicate with your users through email.
How can I get this for my users?
As soon as you know a user's Facebook user ID, you can get that user's proxied email address by either querying the User (FQL) table for the proxied_email field, or by requesting proxied_email for the user with the users.getInfo API method. However, since the ability to send email directly to a user is an extended permission, this address will not work until you get permission, as per the next point.
How do I get it to work?
Since the proxied email address is built upon the notifications.sendEmail API method, it is necessary that you first get the user's permission to send email. You can do this by prompting the user to grant you this permission using Fb:prompt-permission or including the promptpermission attribute in a form.
How does it work?
If you want to send an email to a set of your users, just include their proxied emails in the To: field of the message (Note: Do not put these addresses in the CC: field as they will be ignored). Add the subject of the email as you normally would, and fill out the body of the message. Note that the body of the email is constrained similarly to notifications.sendEmail. Note that any attachments will currently be ignored; only the message body will be passed on at this time.
Email messages sent to a proxied_email address come from the facebookappmail.com domain.
For my Facebook Connect site, can I send email from domains other than my base domain?
Yes. Once the user grants your site the extended permission so it can send the user email, you can send email from any domain.
Why didn't it send all of the emails I wanted it to?
Make sure that you're sending it to fewer than 100 people at a time (the same limit as notifications.sendEmail), that each user has granted you permission to send email, and that your message doesn't contain anything that would not be allowed in an email sent through notifications.sendEmail. Errors are communicated back to the address listed in the Errors-To: header of the email being sent.
Can I distribute the proxied email address to others?
No, doing so violates the Facebook Developer Terms of Service. These addresses should additionally never need to be visible to the user. If you ever believe that one or more of your proxied email addresses have been compromised, you should immediately reset your application's secret key (choose Reset Secret Key for your application at http://www.facebook.com/developers/apps.php), and then regenerate all of the proxied email addresses that your application currently has stored, as described above.
Can a user respond to an email sent to his or her proxied address?
While the user can technically respond, the response does not get sent back to your application. You can include information in your email template that provides guidance on how the user can contact you or your application (such as by going to your application About Page/application profile).
reference