使用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>’

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

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

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

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

 

标签