人生就是不断的填坑,再填坑,下面的填坑记录说不定就能帮助你。
1)SQL server 自带发email功能
测试发给我自己,一切看起来正常。发给小组成员,每个人都能收到了,看起来今天终于可以正常下班了。
可是,测试环境(当然会将所有人的邮件都设定为我们测试小组的成员了)发给某种类型的人的时候,程序不工作了。当初使用的update语句是自己编写的,当然不存在邮箱格式错误的可能。
真是百思不得琪姐啊,只好在小组里面找之前踩过坑的同事了解,询问是否碰到过同样的问题,还好的是我们IT人员都没有藏着掖着的,大家回想当初自己的做法,感觉也没什么解决之道,只好又跑回来摸索。
过了十几分钟,有个同事过来说,好像之前遇到过,to和CC中email不能重复,我使用的是本组成员设定的,当然是大量重复,所以系统就根本不发。
于是就使用去重的程式如下:
/****** Object: UserDefinedFunction [dbo].[ProcessEmail] Script Date: 09/23/2016 16:17:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER function [dbo].[ProcessEmail]( @EmailInput varchar(8000)) returns varchar(8000) as begin declare @value varchar(8000) set @value='' select @value=@value+col+';' from ( select distinct col from f_split(@EmailInput,';') where col!='') as a return @value end ALTER function [dbo].[f_split](@c varchar(8000),@split varchar(10)) returns @t table(col varchar(100)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,charindex(@split,@c)+len(@split)-1,'') end insert @t(col) values (@c) return end
修改之后,世界就清静了。