阿宝
找工作中,求帮助,谢谢!!! QQ:810487238

ALTER PROC [dbo].[sendMailToMyUSER]
(
@from VARCHAR(100),
@body VARCHAR(1000),
@subject VARCHAR(100)
)
AS
BEGIN
 declare @bodynew varchar(1000)
 declare @moldno varchar(20)
 declare @comment varchar(200)
 declare @store varchar(10)
 declare @usetime int
 declare @warntime int
 declare @j int
 declare @count int
 declare @min int

    set @bodynew='您好!'+char(10)+char(13)+'當您收到這封信件時,表示有模具/檢具/治具需要進行例行保養維護。'+char(10)+char(13)+'請您(或安排人員)務必於三日內完成下列模具的保養維護動作!'+char(10)+char(13)+'謝謝!'+char(10)+char(13)
    select @count=count(*),@min=min(ID) from dbo.MailRecord
    set @j=0
    while @j<@count
      begin
  select  @moldno=MoldNo,@comment=Comment,@store=Store,@usetime=UseTimes,@warntime=WarnTime from dbo.MailRecord where ID=@min
  set @bodynew=@bodynew + @moldno + @comment + @store + convert(varchar(10),@usetime) + convert(varchar(10),@warntime)
        set @j=@j+1
        set @min=@min+1
        set @bodynew= @bodynew+ char(10) + char(13)
      end


--    insert into test (body) values (@bodynew)

    SELECT IDENTITY(INT) id,EmailAddr INTO # FROM dbo.MailBox
    DECLARE @i INT,@b BIT
    SELECT @i = SCOPE_IDENTITY(),@b=1

 

    DECLARE @to VARCHAR(100)
    WHILE @i>0
        BEGIN
            SELECT @to=EmailAddr FROM # WHERE id=@i
            EXEC sendMailByCDO @to,@from,@subject,@bodynew,@b OUTPUT

            IF @b=0
              begin
                INSERT myMailSendLOG(toMail) SELECT @to
     end
            SET @i=@i-1
        END
  drop table # 
--  delete from dbo.MailRecord
END

 

ALTER PROC [dbo].[sendMailByCDO]
(
@to VARCHAR(100),
@from VARCHAR(100),
@subject VARCHAR(100),
@bodynew VARCHAR(1000),
@rt BIT OUTPUT
)
AS
BEGIN
    --insert into test values (@bodynew)
    DECLARE @cd INT,@error INT
    EXEC @error = sp_OACreate 'CDO.Message ',@cd OUTPUT

    EXEC @error = sp_OASetProperty @cd,'Subject',@bodynew
    EXEC @error = sp_OASetProperty @cd,'From',@from
    EXEC @error = sp_OASetProperty @cd,'To',@to
    EXEC @error = sp_OASetProperty @cd,'TEXTBody',@bodynew  //若用HTMLBODY则无法按规定换行,用TEXTBODY可按规定换行

    EXEC @error = sp_OASetProperty @cd, 'HTMLBodyPart.Charset','gb2312'
    EXEC @error = sp_OAMethod @cd,'Send'
    EXEC @error = sp_OADestroy @cd
    SET @rt = 1
    IF @error != 0
      begin
        SET @rt = 0
   end
END

posted on 2011-10-18 08:20  阿宝兴荣  阅读(280)  评论(0编辑  收藏  举报