I know this is an old question, but I would like to leave our solution here just in case someone else need it.
Sendgrid doesn't allow to have more than one environment, but you can test different content using their dynamic templates.
On your template you can set some conditionals if/elselike this:
{{#if isDev}}
<p>This is development</p>
{{else}}
<p>This is prod</p>
{{/if}}
And then, when you call the API for sending an mail you should pass the var like this (note: this is a Node example):
sendgrid.send({
from: EMAIL_FROM,
templateId: TEMPLATE_ID,
personalizations: [{
dynamic_template_data: {
isDev:(process.env.ENV === 'development'),
},
}],
});
Obviously this is not the same has having different environment, as you we are not testing the final email you will be sending on PRO, cause your metrics will be mixed and, if you test too much, it can impact your sending quota. But it will work if you just test minor changes to time to time like we do.