I wondered: could we perhaps get PhantomJS to run our data
visualization on the server, capture the rendered output,
and then assemble an email with light HTML, CSS, and
rendered images?
This server side rendering technique is a quite powerful one. I've used it in a couple of projects and expect to see it used more often as people incorporate it into their tool kits.
Much more brittle, handicapping, and more expensive to boot. What if the user wants to zoom in a portion of the data, ignore all but top 3 categories, pan over 100s of points in a series?
If you think about it, it's no more brittle than ajax calls that return HTML. Having used this technique successfully, I know it works and can work well.
I don't recall any handicap at all.
Yes, this kind of solution requires more resources.
Yes, if zoom, filtering, panning and other interaction is required, then the server would have to output SVG and some javascript to manipulate it.
These objections are all worth raising but do not negate the power of this kind of solution. For certain categories of highly interaction apps with a large amount of image or data processing, doing all the work on the client side is a really bad idea, given the wide varieties of client capabilities and available bandwidth.