UPDATE: As of April 2014, due to a change in the Facebook Graph API, the facebook-emails program no longer works. It will only output your friends who have used the Graph API Explorer, which is probably 0-1% of your full friend list! For more information, see the second item under “Permissions” here: https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends
How to reach all your Facebook friends in an effective yet unobtrusive manner is a common problem. The usual solution is to create a group or event and invite all you friends to it. You’ve probably had a “Lost my digits” invite from a friend who has a new phone and lost their contact list. The limitation of this method is the short message (it has to be contained within the group or event title) and the fact that some people summarily ignore all group/event invites. While you can send a message to a group of people, you may run into a recipient limit, and you have all the problems of Facebook group messaging. The default is reply all, so everyone is notified when someone responds, which you almost always don’t want to happen, in particular with larger groups. You then get a situation in which people race to leave the conversation before they are annoyed with further notifications of other people leaving. Facebook tried to fix this problem with “muting” conversations, and while that does fix the notification problem, the conversation still keeps popping up as unread in your inbox.
One word of warning: bothering people can cause them to defriend you. I lost 72 friends to Payo:
$ wc -l before after 1891 before 1819 after