One way is to generate a PDF from VF page and send as an attachment. Please refer to this link on how to do it. Hope this will help you.
By using this visualforce component you can send a visualforce chart/dashboard through email.
<apex:component access="global"> <apex:image value="https://instance.my.salesforce.com/servlet/servlet.ChartServer?[...]"> </apex:image> </apex:component>
upload your image as document and use that url in component.
or you can use Static Resources to send Chart/Dashboard, for that you have to remember following things:
1 make your static resource Public by nature.
2 Save your chart's URl in your Static resources.
3 The spelling of the Static Resource match exactly to the path inside the ZIP file. Do let me know if this helps.
First make a VisualForce page like this (it will be rendered as pdf):
<apex:page controller="MyPdfTemplateController" showHeader="false" renderAs="pdf" > <apex:image value="http://chart.apis.google.com/chart?cht=p&chd=s:Uf9a&chs=400x200&chl=January|February|March|April" width="400" height="200"/> </apex:page>
If chart image is not rendered then you need to allow access to google chart api. Go to Settings / Security Controls / Remote Site Settings and add
http://chart.apis.google.com as new remote site.
This did the trick to me.
The apex:image code works also in VisualForce email templates.
More about google image chart api here: https://developers.google.com/chart/image/
Note that api is deprecated.