邮件中的超链接被识别为纯文本,而不是链接

时间:2011-12-03 11:38:03

标签: c# .net smtp sendmail

我有一个C#应用程序,它可以获取诸如To,subject,message之类的邮件信息。然后它调用wcf服务发送邮件(实习生使用smtpclient.send())。问题是,当邮件正文包含超链接时,它不会被重新定义为链接。它以纯文本形式发送。

这有2个场景,

  1. http://localhost/ my%20pages /test.aspx - 未被识别为链接
  2. http://localhost/ mypages /test.aspx - 已识别为链接
  3. 但邮件属性都是纯文本。我正在使用HttpUtility.UrlEncode()来编码链接。

    如何解决这个问题?

    提前完成

2 个答案:

答案 0 :(得分:1)

如果您想确保网址是链接,请将电子邮件发送为HTML格式 - 您需要将其格式化为HTML格式。

纯文本不会神奇地为您创建链接,但某些电子邮件客户端会看到http前缀并自动创建一个链接,无论来源是否为文本(Outlook)例如)。

答案 1 :(得分:0)

正如您提到的那样,您的纯文本邮件中的“普通”链接会被识别,但包含%20的链接(即空白字符)则不会被识别。一种解决方案是确保首先避免URL中的%20空白,因为(尽管完全合法)它在URL中不是一个非常“友好”的字符。如果你愿意的话,你可以使用htaccess将一个特殊的更友好的角色(例如,三个破折号---)映射到空白处。