C#如何实现发送带表格数据的邮件

sxdtyzg 2011-06-27 10:22:58
我的数据在datagridview中取得,然后需要点击发送按钮将数据通过邮件发送,邮件的格式有文本和表格,请问高手如何实现,我现在只知道如何发邮件,但是邮件中的表格如何生成,不清楚。
...全文
1706 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxdtyzg 2011-06-27
  • 打赏
  • 举报
回复
能否提供一个实例给我看看,我刚接触C#开发,太理论的东西,不好理解,谢谢各位大大了。
isjoe 2011-06-27
  • 打赏
  • 举报
回复
我的意思也是发送Html格式的邮件

将你datagridview中的数据,动态写入一个html的Table中,然后发送动态组合而成的html,用户收到会会显示出一个表格形式的数据。

sxdtyzg 2011-06-27
  • 打赏
  • 举报
回复
楼上的大哥能否详细说明一下?
rqx110 2011-06-27
  • 打赏
  • 举报
回复
发送html格式的!
sxdtyzg 2011-06-27
  • 打赏
  • 举报
回复
谢谢楼上提供的思路,我尝试一下。不知道有没有办法,能直接在邮件中生成表格的方法。
invorx 2011-06-27
  • 打赏
  • 举报
回复
有个笨办法

通过datagridview 可以获取到DataSet, 然后再内存中打开一个Word,操作Word对象,往Word内灌DataSet数据,完成后复制word内的表格,粘贴到邮件内容中, 不知道是否可以取到邮件内容的对象,邮件内容的对象是否支持粘贴?
jackysun0000 2011-06-27
  • 打赏
  • 举报
回复
这个xsl档,可以画出表格
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/SITMailRelease">
<html>
<head>
<title></title>
<style type="text/css">
body
{
font-family: Arial, Helvetica, sans-serif, "宋体";
font-size: 14px;
}

td
{
font-size: 14px;
padding: 5px;
font-family: Arial, Helvetica, sans-serif, "宋体";
}

.MailItemKey
{
font-size: 14px;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif, "宋体";
}
</style>
</head>
<body>
<table align="center">
<tr>
<td>

<table d="table1" cellspacing="0" cellpadding="0" width="1000px" style="border: solid 1px #BACF84">
<tr>
<td width="50"> </td>
<td align="right" style="font-family: Arial, Helvetica, sans-serif; font-size: x-large; font-weight: normal; color: #336600; font-style: italic;">
SW SIT Mail Release System
</td>
<td width="50">
</td>
</tr>
<tr>
<td>
</td>
<td>Dear All,</td>
<td></td>
</tr>
<tr>
<td colspan="3" height="15">
</td>
</tr>
<tr>
<td ></td>
<td>
The following images are released.
</td>
<td></td>
</tr>
<tr>
<td height="15px"></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>

<table width="100%" cellspacing="0" cellpadding="0" >
<tr bgcolor="#F0F7E1">
<td width="250" class="MailItemKey">
Compal Project Code :

</td>

<td width="700" >
<xsl:value-of select="ProjectCode"/>

</td>
</tr>

<tr bgcolor="#FFFFFF">
<td text-align="center" class="MailItemKey">
Compal Project Name :

</td>

<td text-align="center">

<xsl:value-of select="ProjectName"/>
</td>
</tr>
<tr bgcolor="#F0F7E1">

<td text-align="center" class="MailItemKey">
Customer Code :

</td>

<td text-align="center">
<xsl:value-of select="CustomerCode"/>

</td>
</tr>
<tr bgcolor="#FFFFFF">
<td text-align="center" class="MailItemKey">
Image Owner :

</td>

<td text-align="center">

<xsl:value-of select="ImageOwner"/>
</td>
</tr>

<tr bgcolor="#F0F7E1">

<td text-align="center" width="250" class="MailItemKey">
Image Release Date :
</td>

<td test-align="center" width="700">
<xsl:value-of select="ReleaseDate"/>
</td>
</tr>

<tr bgcolor="#FFFFFF">

<td text-align="center" class="MailItemKey">
Files Server Saved Path :
</td>

<td text-align="center">
<xsl:value-of select="FTPPath"/>
</td>
</tr>
<tr bgcolor="#F0F7E1">

<td text-align="center" class="MailItemKey">
Files Server UserName :
</td>

<td text-align="center">
<xsl:value-of select="FTPUser"/>

</td>
</tr>
<tr bgcolor="#FFFFFF">

<td text-align="center" class="MailItemKey">
Files Server UserPwd :

</td>

<td text-align="center">

<xsl:value-of select="FTPPassword"/>
</td>
</tr>

<tr bgcolor="#F0F7E1">

<td text-align="center" class="MailItemKey">
<font color="red">
Release Note :
</font>
</td>

<td text-align="center" wrap="true">


<font color="red">
<xsl:value-of select="Remark" disable-output-escaping="yes"></xsl:value-of>
</font>

</td>
</tr>
</table>


</td>
<td></td>
</tr>
<tr>
<td height="20"></td>
<td></td>
<td></td>
</tr>

<tr>
<td></td>
<td>

Image information :
</td>
<td></td>
</tr>

<tr>
<td>

</td>
<td>
<table id="table10" cellpadding="0" cellspacing="0" style="border: solid 1px #F0F7E1" >

<tr >

<td class="MailItemKey" bgcolor="#F0F7E1" >
Platform
</td>
<td class="MailItemKey" bgcolor="#F0F7E1">
Language
</td>
<td class="MailItemKey" bgcolor="#F0F7E1">
Image ID
</td>
<td class="MailItemKey" bgcolor="#F0F7E1">
OS
</td>
<td class="MailItemKey" bgcolor="#F0F7E1">
Block
</td>
<td class="MailItemKey" bgcolor="#F0F7E1">
BIOS Version
</td>

</tr>
<xsl:for-each select="MailContent">
<tr>
<td style="border: solid 1px #F0F7E1">
<xsl:value-of select="Platform"/>
</td>
<td style="border: solid 1px #F0F7E1">
<xsl:value-of select="Language"/>
</td>
<td style="border: solid 1px #F0F7E1">
<xsl:value-of select="ImageID"/>
</td>
<td style="border: solid 1px #F0F7E1">
<xsl:value-of select="OS"/>
</td>
<td style="border: solid 1px #F0F7E1">
<xsl:value-of select="Block"/>
</td>
<td style="border: solid 1px #F0F7E1">
<xsl:value-of select="BIOSVersion"/>
</td>

</tr>
</xsl:for-each>
</table>
</td>
<td></td>
</tr>
<tr>
<td height="30"></td>
<td></td>
<td></td>
</tr>
<tr>
<td>

</td>
<td style="font-style:italic">
Best Regards!
</td>
<td></td>
</tr>
<tr>
<td>

</td>
<td style="font-style:italic">
<xsl:value-of select="DateNow" />
</td>
<td></td>
</tr>
<tr>
<td height="30"></td>
<td></td>
<td></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>


</xsl:template>
</xsl:stylesheet>
jackysun0000 2011-06-27
  • 打赏
  • 举报
回复
CS 代码

public void uf_SendMailToAgents(string as_DutyName,string as_DutyMail, string as_BeginDate, string as_EndDate, string as_AgentName,string as_AgentMail)
{
string ls_Server, ls_SendFrom, ls_Body = "";
ls_Server = ConfigurationSettings.AppSettings["SmtpServer"].Trim();
ls_SendFrom = ConfigurationSettings.AppSettings["MailSender"].Trim();
SmtpMail.SmtpServer = ls_Server;
MailMessage lo_Message = new MailMessage();
//MailAttachment lo_Attach = new MailAttachment("C:\\Compal\\SIT Mail Release\\Mail Attachment\\A31\\2011\\2011-5-28 14-33-34\\postback.doc");
//lo_Message.Attachments.Add(lo_Attach);
lo_Message.To = as_AgentMail;
lo_Message.Cc = as_DutyMail;
lo_Message.From = ls_SendFrom;
lo_Message.Subject = "SW SITMailRelease System---- 設定代理人提醒";
lo_Message.Priority = MailPriority.High;
lo_Message.BodyFormat = MailFormat.Html;
lo_Message.BodyEncoding = System.Text.Encoding.UTF8;
ls_Body = uf_CreateAgentBody(as_DutyName, as_AgentName, as_BeginDate, as_EndDate);
lo_Message.Body = ls_Body;
SmtpMail.Send(lo_Message);
}

public string uf_CreateAgentBody(string as_DutyName, string as_AgentName, string as_BeginDate, string as_EndDate)
{
XmlDataDocument lo_Document = new XmlDataDocument();
XmlDeclaration lo_Declaration = lo_Document.CreateXmlDeclaration("1.0", "UTF-8", null);
XmlElement lo_Root = lo_Document.CreateElement("SITMailRelease");
lo_Document.AppendChild(lo_Root);

XmlElement lo_EmpName = lo_Document.CreateElement("Name_Eng");
lo_Document.DocumentElement.AppendChild(lo_EmpName);
lo_EmpName.InnerText = as_AgentName;

XmlElement lo_Agent = lo_Document.CreateElement("Duty");
lo_Document.DocumentElement.AppendChild(lo_Agent);
lo_Agent.InnerText = as_DutyName;

XmlElement lo_BeginDate = lo_Document.CreateElement("BeginDate");
lo_Document.DocumentElement.AppendChild(lo_BeginDate);
lo_BeginDate.InnerText = as_BeginDate;
XmlElement lo_EndDate = lo_Document.CreateElement("EndDate");
lo_Document.DocumentElement.AppendChild(lo_EndDate);
lo_EndDate.InnerText = as_EndDate;

//XmlElement lo_Link = lo_Document.CreateElement("Link");
//lo_Document.DocumentElement.AppendChild(lo_Link);
//lo_Link.InnerText = ConfigurationSettings.AppSettings["href"].ToString();

XmlElement lo_Date = lo_Document.CreateElement("DateNow");
lo_Document.DocumentElement.AppendChild(lo_Date);
lo_Date.InnerText = DateTime.Now.ToShortDateString();

lo_Document.InsertBefore(lo_Declaration, lo_Root);
string ls_file = this.up_MailToAgent;
string ls_Body = this.uf_MailFormat(lo_Document, ls_file);
return ls_Body;
}

注:ls_file为xsl文件的路径

xsl代码

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/SITMailRelease">
<html>
<head>
<title></title>
<style type="text/css">
body{
font-family:Arial, Helvetica, sans-serif,"宋体";
background:#e8e8e8;
font-size:14px;
}


td{
font-size:14px;
padding:5px;

font-family:Arial, Helvetica, sans-serif,"宋体";
}

.MailItemKey
{
font-size:12px;
font-weight:bold;
}
</style>
</head>
<body>
<table id="table1" width="750" cellspacing="0" cellpadding="0" >
<tr>
<td colspan="2">
Dear <xsl:value-of select="Name_Eng"/>,
</td>
</tr>
<tr>
<td colspan="2" height="20">

</td>
</tr>
<tr>
<td height="24" width="30"></td>
<td>
您已經被<xsl:value-of select="Duty"/>設置為代理人,時間為<xsl:value-of select="BeginDate"/>---<xsl:value-of select="EndDate"/>

</td>
</tr>


<tr>
<td height="44" colspan="2"> Best Regards!</td>
</tr>

<tr height="25">
<td colspan="2">
<xsl:value-of select="DateNow" />
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

110,556

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧