Clique aqui para ler esse artigo em PDF.imagem_pdf.jpg

capasql27.jpg

Clique aqui para ler todos os artigos desta edição

Como enviar e-mails com anexos no MS-SQL Server sem o uso do SQL Mail

 

     Uma necessidade comum de quem trabalha com servidores MS-SQL Server, tanto para administradores de banco de dados quanto para desenvolvedores, é o envio de e-mails a partir do banco de dados. O método mais comum de se atender a esta necessidade se dá através do uso do SQL Mail. O detalhe é que para utilizar o SQL Mail é necessário a instalação de um cliente de mensagens no servidor de banco de dados e que, na maioria das vezes, é o Microsoft Outlook. Neste artigo exploraremos outra alternativa para o envio de e-mails a partir do servidor de banco de dados sem a utilização do SQL Mail e sem a necessidade da instalação de um cliente de mensagens

no servidor.

 

Visão geral da necessidade e da solução proposta

 

     O SQL Mail permite o envio de e-mails a partir do servidor de banco de dados SQL Server de forma simples e rápida. Entretanto, devido ao fato do SQL Mail ser uma aplicação MAPI (ver Nota 1), um subsistema MAPI deve estar presente no servidor para que o SQL Mail possa funcionar. O Windows NT 4.0 instala um subsistema MAPI no servidor quando você instala o Windows Messaging. O Windows 2000, entretanto, não possui um subsistema MAPI. Desta forma, se você quiser utilizar o SQL Mail, precisará instalar um cliente MAPI - como o Microsoft Outlook.

 

Nota 1. MAPI

Messaging Application Programming Interface (MAPI) é um conjunto

de bibliotecas construído no Windows que permite que aplicativos

de envio e recebimento de e-mail possam trabalhar juntos

para a distribuição de mensagens.

 

     Você pode utilizar outros métodos para o envio de e-mails SMTP (Simple Mail Transfer Protocol) a partir do servidor de banco de dados SQL Server. Uma alternativa é o uso do modelo de objetos CDONTS (Collaboration Data Objects for NT Server) e outra é o uso do modelo de objetos CDOSYS (Collaboration Data Objects for Windows 2000). Qualquer um desses modelos pode ser utilizado em conjunto com as stored procedures OLE Automation (sp_OA*; ver Nota 2) do SQL Server como alternativa ao SQL Mail para envio de e-mails.

 

Nota 2. OLE Automation

Object Linking and Embedding Automation (OLE Automation) é um

método de controle e utilização de objetos COM (Component Object

Model) independente de linguagem. No SQL Server, as stored

procedures OLE Automation permitem que você instancie e trabalhe

com objetos COM a partir do transact SQL (T-SQL).

 

     Para os servidores que funcionam em Windows NT, a única opção é o uso do modelo de objetos CDONTS. O modelo de objetos CDOSYS passou a existir no Windows 2000 e permanece no Windows Server 2003. O modelo de objetos CDONTS não é suportado em servidores Windows Server 2003. Portanto, se seus servidores são Windows 2000 ou superiores, você deve utilizar o modelo de objetos CDOSYS.

     Nos tópicos seguintes veremos como utilizar esses dois modelos de objetos para o envio de e-mails.

 

 

Como utilizar o CDONTS para envio de emails em servidores Windows NT

 

     O modelo de objetos CDONTS foi especialmente desenvolvido para proporcionar funcionalidades de envio de mensagens para aplicações web, permitindo o envio de mensagens no formato HTML - diferentemente de aplicações baseadas em MAPI (como o SQL Mail) que não possuem esse recurso. O Microsoft Internet Information

Server (IIS) 4.0 ou posterior instala o CDONTS.

     O modelo de objetos CDONTS permite o envio de emails através de um servidor SMTP. Se você não possui um servidor SMTP, existe a possibilidade de utilização do servidor virtual SMTP instalado pelo IIS para encaminhamento da mensagem.

     Para utilizar o CDONTS para envio de e-mails a partir do servidor SQL Server siga os passos a seguir:

1. Instalar o IIS e manter seus serviços ativos no computador onde o SQL Server está instalado;

2. Configurar seu servidor de e-mails SMTP como “Smart Host” (detalhado no próximo tópico) para que o serviço SMTP do IIS encaminhe automaticamente qualquer e-mail SMTP enviado do seu servidor local para o servidor de e-mails SMTP destinado

à entrega;

3. Criar uma stored procedure no SQL Server para o envio de e-mails a partir do servidor de banco de dados.

 

Quando você utiliza o CDONTS ao invés do SQL Mail:

• não existe a necessidade de instalação de um cliente de mensagens no SQL Server (por exemplo, Microsoft Outlook);

• não existe também a necessidade do servidor Exchange. Você pode utilizar qualquer servidor de emails que suporte mensagens SMTP.

 

     A desvantagem é que com o uso do CDONTS você não pode ler nem processar uma mensagem que foi enviada para o computador onde o SQL Server está instalado. Também não é possível substituir a funcionalidade do SQL Agent Mail (ver Nota 3).

 

Nota 3. SQL Agent Mail

O SQL Agent Mail permite o envio de e-mails com uma conta e perfil que podem ser diferentes dos utilizados no SQL Mail para processos executados pelo serviço SQL Agent. Os e-mails podem ser enviados quando um alerta é acionado ou então quando um job é executado com sucesso ou falha.

 

Como configurar o servidor de e-mails SMTP como “Smart Host”

...

Quer ler esse conteúdo completo? Tenha acesso completo