有一个.NET程序使用System.Net.Main命名空间通过SMTP发送电子邮件。
它在一个客户站点上,所以它将在到达目的地之前通过(一系列?)SMTP中继服务器。
目前我还没有关于这个smtp回放/电子邮件基础设施的信息(并且获取这些信息将会很困难)。
在行的某个地方,一个感叹号被插入到电子邮件的长URL中,从一行开始的100个字符左右。
编辑 – 实际上已经发现它的约1000字
这不会发生在testing系统或其他数百个网站上。
我相信这一定是与逃跑代码打破排队长。
任何人有任何想法?
自己打了这个。
如果您正在构build一个没有任何回车符的html消息,则可能会在1000个字符左右的地方出现错误。
解决方法是添加几个\ r \ n字符,以便每行小于1000(如果不计算\ r \ n字符,则为988)。
参见2.1.1节。 RFC 2822的线路长度限制了解更多详情。
包装在一定数量的字符通常是一个客户端问题。 如果你没有看到它在你的其他网站,或在testing机器上,我不认为它的代码。 看看你是否找不到客户端用来接收消息 – 这可能是一些蹩脚的旧东西,这是自动包装在一定数量的字符。
这听起来不像.Net应用程序正在导致问题,如果问题没有发生在许多其他网站上运行相同的代码。 问题网站背后的某种应用程序防火墙或反垃圾邮件设备可能正在监视smtpstream? 如果是这样的话,可能会有一条关于截断正在被触发的长URL的规则,这将导致电子邮件中的URL被缩短。