用MailMessage发邮件碰到了奇怪问题。

misspolo 2005-10-08 06:50:40
小弟用MailMessage发送Html格式的邮件。邮件中可能包括一张图片或者一个swf文件。请看下面这段代码,其中[CHART]决定它们出现的位置:

If strPath.Substring(strPath.Length - 3).ToLower <> "swf" Then
strTemplate = strTemplate.Replace("[CHART]", "<img border=0 src='" + strPath + "'>")
Else
'strTemplate = strTemplate.Replace("[CHART]", "<img border=0 src='" + strPath + "'>")
strTemplate = strTemplate.Replace("[CHART]", "<object><embed src='" + strPath + "'></object>")
End If

strPath是要包括的图片或者swf文件的地址。如果是swf格式。则用object标签来呈现。否则就使用img标签。

问题是:当要包括的是图片时。邮件可以正常发送。在收到的邮件中也能看到这张图片。但如果发送的是swf文件。邮件也可以正常发送。但是收到的邮件中看不到这个swf。我查看源文件发现object这一段代码根本就不存在.而我如果把swf文件也用img标签来呈现(注释掉那一段)。那么在收到的邮件的html源文件可以看到这一段img src=...swf 的代码(当然,显示不出来). 或者我直接把[CHART]替换成path也可以在邮件中看到这一段代码。

看起来好像object这个标签在传输过程中被过滤掉了。

请兄弟朋友们帮忙看看。
...全文
310 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dolfen 2006-02-15
  • 打赏
  • 举报
回复
script,object等标签被过滤掉,可能是服务器出于安全考虑吧,这些标签都是不安全代码。
要发SWF就作附件发吧
misspolo 2005-10-09
  • 打赏
  • 举报
回复
谢顶

问题的关键不是。用MailMessage发送Html格式的邮件时,某些Html标签被过滤掉了。己知的有iframe,script,object等等。
请问这些是被什么过滤掉的。如何能让我的邮件不被过滤掉。
谢谢!
jetxia 2005-10-09
  • 打赏
  • 举报
回复
还没有用这发送过html格式的邮件
帮顶
misspolo 2005-10-09
  • 打赏
  • 举报
回复
我用MailMessage发送这段代码:
<img src='....png'>
<hr>
<object><embed src='....swf'></object>

但是在收到的邮件中。"<object><embed src='....swf'></object>"这段代码就莫名其妙的丢失了!。类似的要丢失的html标签还有iframe,script等等。
如果把要发送的内容HTMlEncode之后再发送。可以看到这些被编码后的代码。

会不会是被邮件服务器过滤掉了?
misspolo 2005-10-09
  • 打赏
  • 举报
回复
misspolo 2005-10-08
  • 打赏
  • 举报
回复
ding

110,561

社区成员

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

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

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