none
Alternar MAPI Profile utilizada pelo SQL MAIL RRS feed

  • Pergunta

  • Salve pessoal,
    Estou usando o SQL Mail para envio e recebimento de mensagens de email através do SQL Server 2000 em um servidor Windows Server 2003 com o Outlook 2003 instalado, então criei um MAPI profile no Outlook para ser usado como base para a utilização das procedures xp_sendmail e xp_readmail, ou seja, os dados desta conta como o endereço de email, pop3, smtp e etc serão usadas pelas procedures do SqlServer para o envio e recebimento de email pelo fato do usuário utilizado para criação do MAPI profile
    é o mesmo usado para rodar os serviços do SQLSERVER, correto?

    A questão é o seguinte, eu preciso enviar e receber mensagens de uma série de emails diferentes, como se fosse um webmail mesmo, então oque eu pensei inicialmente foi em criar vários MAPI Profiles, porém não consigo alternar entre eles, para o envio e recebimento de emails, alguém sabe como é possível fazer isto?

    Exemplo:
    Primeiramente desejo enviar e receber emails através do SQL Mail da conta fulano@dominio.com.br, depois quero fazer o mesmo para sicrano@dominio.com.br

    Desde já adradeço.
    segunda-feira, 5 de janeiro de 2009 17:24

Respostas

  • Olá Marcus,

     

    Nesse caso, eu consideraria criar algum componente do lado do servidor para o envio de e-mails. A aplicação no cliente poderia utilizar esse componente e solicitar que o mesmo envie os e-mails. Deve haver formas de liberar acessos apenas aos servidores de e-mail via regra de firewall.

     

    Usando o CLR do SQL Server 2005 é possível criar procedures em .NET para enviar e receber e-mails, mas penso que esse ainda não é o melhor caminho. O MAPI do SQL Server 2000 não é capaz de receber e processar e-mails de diferentes contas. O SQL Server 2005 é capaz de cadastrar múltiplos perfis de envio, mas não trabalha com recebimento de e-mails.

     

    Eu recomendaria que você postasse essa dúvida em fórums de .NET ou de arquitetura aqui no MSDN. Acho que um bom arquiteto em um desses fóruns pode ter opiniões mais abragentes que um fórum de DBAs.

     

    [ ]s,

     

    Gustavo

    terça-feira, 6 de janeiro de 2009 15:20

Todas as Respostas

  • Boa Noite,


    Embora seja possível (com uma razoável dose de trabalho) não aconselharia utilizar o SQL Server para fazer isso. O fato de haver suporte a utilização de e-mails não quer dizer que ele seja a melhor alternativa para tal. Estou convicto de que uma boa camada de aplicação disponibiliza componentes para trabalhar com envio de e-mails em capacidade bem superior ao SQL Server e o SQL Mail.


    Colocar o envio de e-mails por conta da aplicação além de ser mais flexível possivelmente é mais performático. O sistema de envio de e-mails do SQL Server é interessante, mas possui suas limitações já que o SQL Server é uma suíte de banco de dados e por isso há um suporte e não uma solução completa de envio de e-mails. Outro ponto é que a função essencial de um servidor de banco de dados é recuperar e gravar dados e são essas as tarefas que devem ter a prioridade máxima em utilização de recursos. Acoplar o envio de e-mails a esse servidor é diminuir sua capacidade de processamento em função de outras tarefas que não compõe as tarefas de maior importância.


    Se você realmente precisa fazer isso no SQL Server terá que utilizar outros mecanismos que não a xp_sendmail. Será necessário evoluir para outras soluções como a sp_oacreate com componentes ou a não documentada xp_sendsmtpmail (em um outro post seu citei referências sobre a utilização dessas soluções). São soluções que funcionam, mas nem de longe seriam comparáveis às tradicionais APIs disponíveis nas linguagens de programação.


    [ ]s,


    Gustavo

    segunda-feira, 5 de janeiro de 2009 21:54
  • Muito Obrigado Gustavo,

    Algumas soluções como o CDOSYS e o
    xp_sendsmtpmail são interessantes, mas estas soluções são somente para o envio de emails (SMTP), e eu preciso também recebe-los (POP3).

    Assim como você falou talvez o meu foco em utilizar Banco de Dados para envio de email esteja errado, irei lhe explicar qual a minha necessidade e peço porfavor que me dê sua opinião:

    _Possuo alguns sistemas client-server, que utilizam-se de um BD Sql Server 2000 em um servidor Win Server 2003 e os aplicativos instalados no cliente são feitos no .NET FRAMEWORK 2.0, surgiu uma demanda aqui para incluir em um destes sistemas um módulo de envio e recebimento de emails (SMTP e POP3) por questões de monitoramento e controle sobre as mensagens enviadas a partir das maquinas clientes, além disto cada funcionário possui seu email (por isto a necessidade de enviar e receber emails de várias contas diferentes). Seria relativamente tranquilo para mim implementar esta solução em .NET e apenas atualizar os aplicativos nas máquinas clientes, a questão aqui é que por restrições da empresa as máquinas clientes não possui acesso a internet ao contrário do servidor e também não possuimos ums servidor de emails interno à empresa como o Exchange Server, daí tive a idéia de enviar estes email através do Bando de Dados.

    Alguma idéia de um solução mais simples e menos dispendiosa?

    Desde já agradeço



    terça-feira, 6 de janeiro de 2009 14:36
  • Olá Marcus,

     

    Nesse caso, eu consideraria criar algum componente do lado do servidor para o envio de e-mails. A aplicação no cliente poderia utilizar esse componente e solicitar que o mesmo envie os e-mails. Deve haver formas de liberar acessos apenas aos servidores de e-mail via regra de firewall.

     

    Usando o CLR do SQL Server 2005 é possível criar procedures em .NET para enviar e receber e-mails, mas penso que esse ainda não é o melhor caminho. O MAPI do SQL Server 2000 não é capaz de receber e processar e-mails de diferentes contas. O SQL Server 2005 é capaz de cadastrar múltiplos perfis de envio, mas não trabalha com recebimento de e-mails.

     

    Eu recomendaria que você postasse essa dúvida em fórums de .NET ou de arquitetura aqui no MSDN. Acho que um bom arquiteto em um desses fóruns pode ter opiniões mais abragentes que um fórum de DBAs.

     

    [ ]s,

     

    Gustavo

    terça-feira, 6 de janeiro de 2009 15:20