none
asp.net c#的System.Net.Mail发送email的内容如何按表格形式显示datatable的内容或者说如何显示出html标记所展示的网页?

    问题

  • 利用.net c#的System.Net.Mail命名写代码发送电子邮件,其邮件的内容格式为Body = "*******",现在想将邮件内容搞得丰富一点,比如有表格,有连接图片啊,但是将html标记放到body中其依然只是显示html标记。比如Body = "<p>第一行<br />第二行</p>",如果是html则显示为两行,但是最终在email中就是显示<p>To break<br />lines.</p>。

    那么问题来了:

    1、在邮件中如何将html标记转换为实际的网页,有无简单的方法可调用?

    2、推而广之,如何将datatable的内容以表格的形式显示在email内容中?

    2016年1月1日 4:45

答案

全部回复

  • 你好,江狐虫

    关于C# 发送HTML格式的邮件,你可以设置MailMessage.IsBodyHtml 性为True,下面这个帖子就解释了此问题。

    http://stackoverflow.com/questions/8628683/how-to-send-html-formated-email

    关于如何在邮件内容中添加Table,其他还是将HTML table相关的标签和数据组合成字符串,然后设置MailMessage.IsBodyHtml true即可。这里的关键点可能就是如何将C# DataTable的数据转成带有HTML标签的string,下面的帖子提供了一个完整的代码展示了如何解决此问题,并切给出了邮件发送的实例,你可以参考下。

    http://stackoverflow.com/questions/8811353/send-a-table-in-email

    Best Regards,

    Albert Zhang

    2016年1月1日 6:35
  • 电子邮件的那个对象有一个属性是“是否以HTML的形式发送邮件内容”,你将它设置为TRUE就可以达到你要的效果了。

    另外,我写了一个发送邮件的Demo,可是当我用网易邮箱作为发件邮箱的时候就不成功,提示消息是“不允许使用邮箱名称”。

    具体消息是:服务器响应为: authentication is required,163 smtp3,DdGowEC5gEC+PopWjsQlAA--.18277S2 1451900608 在 System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response) 在 System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from) 在 System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception) 在 System.Net.Mail.SmtpClient.Send(MailMessage message) 在 发送邮件.Smtp04.CreateTimeoutTestMessage()。

    请问这个是为什么咧?

    可以和你交流下吗?

    QQ1138101258

    2016年1月4日 9:45
  • 你好,

    >>另外,我写了一个发送邮件的Demo,可是当我用网易邮箱作为发件邮箱的时候就不成功,提示消息是“不允许使用邮箱名称”。

    根据你的错误信息,我在网上搜索了一下,这个问题可能是网易的邮箱问题,你可以咨询一下网易的客服。以下是关于这个问题的链接。

    http://www.cnblogs.com/sjcatsoft/archive/2009/01/22/1380063.html

    Best regards,

    Cole Wu

    2016年1月29日 9:14
    版主