How can I render a token within a token via rules mail action? I want to send a node via rules. I can send it using the [node:body] token. However, I want to be able to use tokens in the actual node body as well. (Note: These are not global tokens)

Think of it like a newsletter and in the body field I am using 

Dear [field_ef_first_name], ...

I can get the token to render if I put it directly in the rules action mail message body, but if it is in the node body field itself, it doesn't render.

The name field is coming form a views rule loop.

Rule exported:

{ "rules_send_newsletter_when_published" : {
"LABEL" : "Send newsletter when published",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "node_insert--blog" : { "bundle" : "blog" } },
"DO" : [
  { "VIEW LOOP" : {
      "VIEW" : "entityforms",
      "DISPLAY" : "views_rules_1",
      "ROW VARIABLES" : {
        "field_ef_email" : { "email" : "Email" },
        "field_ef_first_name" : { "first_name" : "First Name" }
      },
      "DO" : [
        { "mail" : {
            "to" : "[email:value]",
            "subject" : "[node:title]",
            "message" : "[node:body]",
            "language" : [ "" ]
          }
        }
      ]
    }
  }
]


}
}
Using tokens within the body of a node, combined with using [node:body] in a Rules Action, will only result in the token being included as is (without rendering). However, based on what you're trying to do, you may want to have a look at an entirely different approach to achieve your goal ...

Enable the Forena module (disclosure: I'm a co-maintainer), and have a look at Active Users Email (using FRX syntax), which is one of the samples included in the module (which can be used to eMail a template message body to all registered users).

These are the parts in this FRX file that are relevant to the question here:


The datablock drupal/active_users, which is (just) an SQL statement that looks like so:

--ACCESS=access administration pages

SELECT uid, name, mail, login, status

FROM {users}

WHERE status=1 order by name
The frx:foreach="*", which will cause an iteration for each row included in the results of the data block, for everything inside that div (related to the datablock).
The div with class="email-body", which starts with Dear {name}, and which includes a replacement token indicated with {name}.
The line with &lt;frx:doc type="email" /&gt;, to enable document format "Send eMail".


After you enabled the module, and visit the relative path at /reports/drupaladmin.sample_active_users_letter, this is what will happen:


Run the SQL query (as contained in the datablock).
Iterate over each of the results returned by the datablock (SQL statement).
For each iteration resolve all the tokens (i.e. as within that Dear {name}).
Display how the eMail will actually look like (for each iteration).
Add link (upper right) titled "eMail". If you actually click that "eMail" link, a confirmation screen will be shown with these details:


number of eMails that will be eMailed (= number of rows in the datablock).
radio button to either send an eMail, or actually send all eMails.



With the above in mind, this is what you'd need to get it to work for your case:


Clone the delivered sample, and tune it as detailed below.
Adapt the datablock to retrieve the desired data (columns), similar to what your view is doing. Or create a new one that fits your needs and use that one instead. Make sure to include the data related to your field_ef_email and field_ef_first_name.
Adapt the From, To and Subject to fit your needs.
Use whatever tokens you need, anywhere in the Body of your eMail. E.g. to replace that Dear {name}. If you need more, or other, data, just add an appropriate name to your datablock (as an extra column). As a sample, here is part of an FRX file I created to transform webform submissions into some kind of followup-eMail to each of those who submitted the form:

&lt;p&gt;Hello,&lt;/p&gt;

&lt;p&gt;thank you for using our form (with node id = {node}) to submit your feedback (with submission id = {submission}). You're now confirmed via the eMail Id you entered (= {fieldvalue}) to receive eMails from us.&lt;/p&gt;

&lt;p&gt;We'll get back to you shortly for an additional followup eMail.&lt;/p&gt;