ActionMailer message delivery content

I have the ability to send email to a user if a certain user has
requested interest in their product. In my email I want to include
certain information that is pulled from users but at the moment I am
getting errors because it states that they are undefined despite these
lines being used elsewhere in my application. I shall copy the email
below and anything between the <% %> is what I wish to include and was
wondering if anyone could point me in the right direction and tell me
which are those that are correct and are not. Any help would be
wonderful. The message I want to send is as followed:

Hello <%@user.username%>

The user <% current_user.username %> has registered an interest in the
following product of yours:

<% @book.book_name %>
<% @book.genre %>

The user <% current_user.usernames %> has the following games for offer:

<% current_user.book.book_name %>

To view <% current_user.username %> profile click <% link_to "here",
current_user.show %>
If you wish to contact the user by email then contact the following
email <% current_user.email %>.

I hope that makes sense. In order to give further insight in to what I
have, I have a users table that includes user information and a book
table that has books information with a user_id foreign key. Users have
a has_many with books and games belongs_to user.

The @user lines work for me but I get undefined method for anything
after @book e.g. undefined method 'book_name'. Why is this so when it
works for user?

Finally I have come to understand that the mailer doesn't recognise
current_user? how would I go about doing the current_user line if that
line is not able to be used?

It is always a good idea to paste the exact error message in. What
does it say the method is undefined for? If it says that is not
defined for nil then that means that your @book is not a Book but is
nil.

Colin