--exec P_TYAN_SERVICE_SITE_CHECK
Procedimento ALTER [dbo].[P_TYAN_SERVICE_SITE_CHECK]
Como
Declarar
@contar int,
@objeto int,
@hr int,
@rcint,
@saída varchar(400),
@descrição varchar (400),
@fonte varchar(400),
@remetente varchar(50),
@nomeremetente varchar(50),
@endereçoservidor varchar(255),
@destinatário varchar(255),
@recipientName varchar(255),
@assunto varchar(255),
@mailbody varchar(8000)
--Início automático de e-mail
select @count= count(*) from [dbo].[TYAN_SERVICE_SITE] onde area não é nulo e cust_name não é nulo e ship_location não é nulo e country não é nulo e cust_no não é nulo e (CUST_TYPE é nulo ou SERVICE_SITE é nulo )
se(@contar!=0)
começar
Definir @sender='AutoMail'
Definir @sendername='AutoMail'
Definir @serveraddress='10.98.0.211'
--Aqui está o endereço do destinatário. Esta variável parece inútil, então adicione-a diretamente no final. Basta olhar abaixo -------
Definir @destinatário =''
--título----------------
Definir @subject='Correio'
-------Aqui estão os dados que você deseja exibirBegin---------------------
Definir @mailbody=N'<html><head>
</head><corpo>
<p style="margin-bottom:12.0pt"><font size=1 face=Arial><span
lang=EN-US style="font-size:9.0pt;font-family:Arial">Prezado Senhor:<o:p></o:p></span></font></p>
<p style="margin-bottom:12.0pt"><font size=1 face=Arial><span
lang=EN-US style="font-size:9.0pt;font-family:Arial">Por favor, mantenha estes novos Tyan
Site de serviço:<o:p></o:p></span></font></p>
<table style="font-family:trebuchet ms;font-size: 10pt; border-collapse:collapse" cellpadding="2" bordercolor="black" border=1>
<tr bgcolor=laranja alinhar=centro>
<td >ÁREA</td>
<td >PAÍS</td>
<td >NÃO CLIENTE</td>
<td >NOME DO CLIENTE</td>
</tr>'
--<td align=left>Nome do departamento</td>
Declarar
@strvarchar(8000),
@AREA nvarchar(50),
@COUNTRYvarchar(50),
@CUST_NO varchar(50),
@CUST_NAMEvarchar(50),
@vcountint
começar
definir @vcount=1
definir @str=''
Declarar Cursor c_at
PARA
selecione área distinta, país, cust_no, cust_name de [dbo].[TYAN_SERVICE_SITE] onde a área não é nula e cust_name não é nulo e ship_location não é nulo e o país não é nulo e cust_no não é nulo e (CUST_TYPE é nulo ou SERVICE_SITE é nulo )
ABRIR c_at
BUSCAR PRÓXIMO DE c_at PARA @AREA,@COUNTRY,@CUST_NO,@CUST_NAME
ENQUANTO (@@FETCH_STATUS = 0)
COMEÇAR
definir @str=@str+'<tr alinhar=centro>'
definir @str=@str+'<td >'+@AREA+'</td>'
definir @str=@str+'<td >'+@COUNTRY+'</td>'
definir @str=@str+'<td >'+@CUST_NO+'</td>'
definir @str=@str+'<td >'+@CUST_NAME+'</td>'
definir @vcount=@vcount+1
BUSCAR PRÓXIMO DE c_at PARA @AREA,@COUNTRY,@CUST_NO,@CUST_NAME
FIM
-------Aqui estão os dados que você deseja exibir no final---------------------
FECHAR c_at
DEALLOCATE c_at
fim
Definir @mailbody = @mailbody+@str+'</table></body></html>'
Exec @hr = sp_OACreate 'jmail.message', @object OUTPUT
Exec @hr = sp_OASetProperty @object, 'Charset', 'BIG5'
--@destinatário --Endereço de e-mail do seu destinatário------------------------------------------- ----- ---------------
Exec @hr = sp_OAMethod @object, 'AddRecipient',NULL,'seu endereço de e-mail'
--Exec @hr = sp_OAMethod @object, 'AddRecipientBCC',NULL,'seu endereço de e-mail'
Exec @hr = sp_OASetProperty @objeto, 'Assunto',@assunto
Exec @hr = sp_OAsetProperty @object, 'HTMLBody' ,@mailbody
Exec @hr = sp_OAsetProperty @object, 'Prioridade' , 1
Se Not @sender for nulo
Exec @hr = sp_OASetProperty @object, 'De', @sender
Se Not @sendername for nulo
Exec @hr = sp_OASetProperty @object, 'FromName', @sendername
--Início automático de e-mail
Exec @hr = sp_OAMethod @object, 'Enviar', null,@serveraddress
Exec @hr = sp_OAGetErrorInfo @object, @source OUTPUT, @description OUTPUT
se (@hr = 0)
Começar
Definir @output='Fonte do erro: '+@source
Imprimir@saída
Selecione @output = 'Descrição do erro: ' + @description
Imprimir@saída
Fim
Outro
Começar
Imprimir 'Falha ao obter informações de erro! '
Retornar
Fim
--Liberar objeto JMail.Message
EXEC @hr = sp_OADestroy @objeto
--IF @hr <> 0
--COMEÇAR
-- EXEC sp_OAGetErrorInfo @object
-- RETORNAR
--FIM
fim
O procedimento armazenado acima é concluído,
Em anexo está a abertura dos Procedimentos de Automação Ole
---Procedimentos de automação Ole abertos----
sp_configure 'mostrar opções avançadas', 1;
IR
RECONFIGURAR;
IR
sp_configure 'Procedimentos de Automação Ole', 1;
IR
RECONFIGURAR;
IR
Você pode usá-lo após fazer pequenas modificações com base em seus próprios dados. O envio de e-mails geralmente é usado junto com o trabalho do agente do SQL Server para enviar e-mails regularmente.
Este artigo vem do blog CSDN. Indique a fonte ao reimprimir: http://blog.csdn.net/liaolian9948/archive/2009/12/31/5110313.aspx.
-