You should use Example 1 (before) for the following reasons:
It's easier to debug because you can see all the important logic in one place. Example 2 splits up an important feature (emailing all members of the group) into two separate places.
It is more flexible. Suppose you want to send a similar (or the same) email in a different context? This way, you can use the same Resque class rather than creating a new one.
(As another commenter pointed out) If an error occurs in your Resque class, it will retry. You probably want it to only retry a single email, not the whole batch. So, the Resque job should only be responsible to send one email.