I would prefer to use RegisterStartupScript instead of RegisterClientScriptBlock.
Given below is the way to use RegisterStartupScript. You should use it in your case.
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "ReportPage", "javascript:window.open('EmailTemplate.aspx?emailAddress="+emailAddress+"','_blank');", true);
Because when you use RegisterStartupScript, it will render your script after all the elements in the page (right before the form's end tag). This enables the script to call or reference page elements without the possibility of it not finding them in the Page's DOM.
On the other hand when you use RegisterClientScriptBlock, the script is rendered right after the Viewstate tag, but before any of the page elements. Since this is a direct script (not a function that can be called, it will immediately be executed by the browser. But the browser does not find the label in the Page's DOM at this stage and hence you should receive an "Object not found" error.
For further details visit this answer.