使用SQL Server发送邮件时遇到的诡异事件

           最近公司要实现一个邮件群发的功能,因此设计时就考虑用SQL Server的邮件发送功能直接推送邮件算了。

可是在实现的过程中,邮件内容中有一个表格的内容要展现,于是就编排了一个表格来实现。

          具体实现如下:

          set @tableHTML=
  N'<table border="1">'
+ N'<tr><th>经销商名称</th><th>县级类型</th>'
+ N'<th>县级城市</th><th>终端客户名称</th><th>联系人</th>'
+ N'<th>联络电话</th><th>抽查时间</th><th>联系电话是否准确</th>'
+N'<th>是否合作客户</th>'
+N'<th>联系人是否准确</th><th>终端客户资料是否准确</th><th>正确信息</th>'
+N'<th>终端客户订单响应时间</th><th>终端客户类型</th><th>终端客户信息修改时间</th></tr>'
+CAST((
 SELECT 
  td =isnull([CompanyName],'无'),''
 ,td =isnull([AreaType],'无'),''
 ,td =isnull([AreaName],'无'),''
 ,td =isnull([CustName],'无'),''
 ,td =isnull([Contacts],'无'),''
 ,td =isnull([Mobile_Tel],'无'),''
 ,td =isnull(convert(nvarchar(10),[SVDate],121),'无'),''
 ,td =isnull([IsContactTelRight],'无'),''
 ,td =isnull([IsCooperateClient],'无'),''
 ,td =isnull([IsContactsRight],'无'),''
 ,td =isnull([IsEndUserInfoRight],'无'),''
 ,td =case isnull([RightInfo],'无') when '' then '无' else [RightInfo] end,''
 ,td =isnull([EndUserOrderReplyTime],'无'),''
 ,td =isnull([CustChannelName],'无'),''
 ,td =isnull(Convert(nvarchar(19),[ClientInfoModifyTime],121),'无'),''
 FROM [TelSVEmailDetl] detl
 where SVDate=@SVDate 
     and detl.CompanyID=@CompanyID 
 FOR XML PATH('tr'),TYPE) AS NVARCHAR(MAX)) 
 + N'</table>'

               看到上面标注为红色的联络电话了吧,其实以前要求是写成联系电话的,但是我换成联系电话了邮件就死活发送不了了。

无奈之下只好改成了联络电话,才将邮件发送了出去。这里必须感谢我们老祖宗给我们留下了博大精深的文化,改个字意义还是

一样的,如果是英文的说不定就傻眼了。虽然实现了功能,但是造成这个问题的原因一直没有寻找到,所以只好发文记录下,希

望看到此文的大神能够给解释下。



          

原文地址:https://www.cnblogs.com/kevinGao/p/3589955.html