加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – xp_smtp_sendmail随机添加到html的空格

发布时间:2020-12-12 06:34:02 所属栏目:MsSql教程 来源:网络整理
导读:我有一个proc,我生成带有链接的小html文档,并通过xp_smtp_sendmail proc发送出去.链接是根据查询结果生成的,并且很长.这适用于大多数情况.但是,由于空格被插入到查询字符串变量名中,有时链接会被破坏,即 Na me = John. 这可能因电子邮件客户端而异(同一链接在
我有一个proc,我生成带有链接的小html文档,并通过xp_smtp_sendmail proc发送出去.链接是根据查询结果生成的,并且很长.这适用于大多数情况.但是,由于空格被插入到查询字符串变量名中,有时链接会被破坏,即& Na me = John.

这可能因电子邮件客户端而异(同一链接在Gmail中有效,但由于空格可能无法在comcast中使用.空间似乎是随机插入的,因此在每个损坏的电子邮件链接空间中可能会破坏其他查询字符串变量.当我从proc执行PRINT时链接很干净,没有空格.

这是我在main proc中执行的邮件proc的示例(获取查询结果并为@Message生成html).无论我是否编码网址,似乎都插入了空格.

预先感谢您的帮助.如果代码在这里没有正确显示,我可以发送更清晰的代码版本.

….上面的查询结果

SET @Message = NULL
SET @Message = @Message +
+ '<br/>Dear ' + @FirstName + ' ' + @LastName + ','
+ '<br/><br/>Recently you took "' + @Title + '". ' 
+ 'In response to the question "What is it?" ' 
+ 'you responded "' + @Response + '".' 
+ '<br/><br/>Following up on previous mailing'
+ '<br/><br/>Please click on the link below'
+ '<br/><br/><a href="' + @Link + '">Please click here</a>'
+ '<br/><br/>plain text'
+ '<br/><br/>plain text,'
+ '<br/><br/>plain text<br/>
plain text<br/>
plain text<br/>
plain text<br/>
plain text<br/>
plain text

EXEC @rc = master.dbo.xp_smtp_sendmail
 @FROM         = 'any@any.com',@FROM_NAME    = 'Any User',@TO           = @Email,@priority     = N'NORMAL',@subject      = N'My email',@message      = @Message,@messagefile  = N'',@type         = N'text/html',@attachment   = N'',@attachments  = N'',@codepage     = 0,@server       = 'smtp.server.any'

解决方法

1 – 检查您生成的消息的长度,并切换到从文件发送它的长度接近4000 char.

2 – 在每个句子或段落之前注入cr / lf字符.

3 – 确保在标签打开之前和之后你有cr / lf(或者只是如果这是smtp服务器喜欢的那样)

4 – 与任何关于缩短嵌入链接长度的人交谈 – 这显然是不可持续的

5 – 询问smtp服务器上的任何配置选项,以便将电子邮件作为完全编码的二进制文件发送(需要MIME头和Base64编码)

6 – 寻找xp_smtp_sendmail的最新替代品,也许是.NET xp

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读