代码
//binding data from xml file to datagridview
DataSet ds = new DataSet();
ds.ReadXml("dataFile.xml");//xml file placed in bin/Debug folder
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "authors";
private StringBuilder htmlMessageBody(DataGridView dg)
{
StringBuilder strB = new StringBuilder();
//create html & table
strB.AppendLine("<html><body><center><" +
"table border='1' cellpadding='0' cellspacing='0'>");
strB.AppendLine("<tr>");
//cteate table header
for (int i = 0; i < dg.Columns.Count; i++)
{
strB.AppendLine("<td align='center' valign='middle'>" +
dg.Columns[i].HeaderText + "</td>");
}
//create table body
strB.AppendLine("<tr>");
for (int i = 0; i < dg.Rows.Count; i++)
{
strB.AppendLine("<tr>");
foreach (DataGridViewCell dgvc in dg.Rows[i].Cells)
{
strB.AppendLine("<td align='center' valign='middle'>" +
dgvc.Value.ToString() + "</td>");
}
strB.AppendLine("</tr>");
}
//table footer & end of html file
strB.AppendLine("</table></center></body></html>");
return strB;}
// Create a message with datagridview contents
// in its body and set up the recipients.
MailMessage myMessage = new MailMessage();
try
{
myMessage.From = "from@yourDomain.com";//place here from address
myMessage.To = "to@recipientsDomain";//place here to address
myMessage.Cc = "cc@someDomain.com";//place here copy address
myMessage.BodyEncoding = Encoding.UTF8;
myMessage.BodyFormat = MailFormat.Html;
//call method, creating HTML from datagridview
myMessage.Body = htmlMessageBody(dataGridView1).ToString();
//place here your subject
myMessage.Subject = "message subject";
//if it is needed set up credentials
myMessage.Fields.Add("http://schemas.microsoft.com/cdo/" +
"configuration/smtpauthenticate",
"1");//Basic Authentication
myMessage.Fields.Add("http://schemas.microsoft.com/cdo/" +
"configuration/sendusername",
"userName");//user name
myMessage.Fields.Add("http://schemas.microsoft.com/cdo/" +
"configuration/sendpassword",
"password");//password
//place here SMTP server
SmtpMail.SmtpServer = "your SMTP server";
SmtpMail.Send(myMessage);
MessageBox.Show("Message sent!");
}
catch (Exception ex)
{
MessageBox.Show("Error! "+ex.Message);
}
//create message with datagridview contents in attachment
MailMessage myMessage = new MailMessage();
try
{
myMessage.From = "from@yourDomain.com";//place here from address
myMessage.To = "to@recipientsDomain";//place here to address
myMessage.Cc = "cc@someDomain.com";//place here copy address
myMessage.BodyEncoding = Encoding.UTF8;
myMessage.BodyFormat = MailFormat.Html;
myMessage.Body = "some body text";//place here some text
myMessage.Subject = "message subject";//place here your subject
//creating attachment
StreamWriter sw = new StreamWriter("file.html",
true, Encoding.UTF8);//creating html file
//write datagridview contents to HTML file
sw.Write(htmlMessageBody(dataGridView1).ToString());
sw.Close();
//create attachment
MailAttachment myAttach = new MailAttachment("file.html");
myMessage.Attachments.Add(myAttach);//add attachment to our message
//if it is needed set up credentials
myMessage.Fields.Add("http://schemas.microsoft.com/cdo/" +
"configuration/smtpauthenticate",
"1");//Basic Authentication
myMessage.Fields.Add("http://schemas.microsoft.com/cdo/" +
"configuration/sendusername",
"userName");//user name
myMessage.Fields.Add("http://schemas.microsoft.com/cdo/" +
"configuration/sendpassword",
"password");//password
//place here SMTP server
SmtpMail.SmtpServer = "your SMTP server";
SmtpMail.Send(myMessage);
MessageBox.Show("Message sent!");
}
catch (Exception ex)
{
MessageBox.Show("Error! " + ex.Message);
}