Pergunta

Tenho uma aplicação web desenvolvida em ASP.net e C# que está rodando na intranet da minha empresa.Como todos os usuários deste aplicativo usam o Microsoft Outlook, sem exceção, gostaria que o aplicativo abrisse uma mensagem do Outlook no lado do cliente. Entendo que o Office foi projetado para ser executado na área de trabalho e não em um servidor, mas não tenho problemas para criar um documento do Word ou Excel no lado do cliente.

Eu tenho um código que instancia o objeto Outlook usando o namespace Microsoft.Office.Interop.Outlook e o Outlook instalado no servidor.Quando tento executar o código do servidor, recebo uma mensagem de erro de origem DCOM que declara "as configurações de permissão de máquinas-defensores não concedem permissão de ativação local para o aplicativo COM Server com CLSID {000C101C-0000-0000-C000-0000000046 } Para o usuário, essa permissão de segurança pode ser modificada usando a ferramenta administrativa de serviços de componentes. " Modifiquei as permissões usando a ferramenta de serviços de componentes, mas ainda assim recebo o mesmo erro.

Existe uma maneira de superar isso ou é um exercício infrutífero porque o Outlook não pode ser aberto no lado do cliente a partir do código do lado do servidor?

Mailto não funcionará devido ao tamanho extremo que os emails podem obter.Além disso, o usuário que o envia precisa adicionar um atrativo ao texto para os destinatários.

Foi útil?

Solução

Você não pode abrir algo no cliente a partir do código do servidor.Você teria que usar o script na página para fazer o que deseja (ou algo do lado do cliente, como ActiveX ou .NET incorporado ou algo assim)

Aqui está um exemplo de Javascript que invoca um MailItem do Outlook a partir de uma página da web.Isso pode ser facilmente injetado na página a partir do código do lado do servidor para que seja executado no cliente.

http://www.codeproject.com/KB/aspnet/EmailUsingJavascript.aspx

Outras dicas

(dica:formatação na sua pergunta)

Não estou entendendo o que há de errado com um link mailto ou uma página do tipo formmail.

Se todos na empresa usam o Outlook, basta usar um link "mailto" padrão para abrir sempre o Outlook.Parece que você está exagerando na engenharia disso.

Deseja abrir um e-mail existente ou criar um novo?

Talvez eu tenha entendido mal sua pergunta, mas você pode fornecer um link como

mailto:recipient@email.tld?subject=Este%20é%20the%20subject&body=Olá%20aí!

Quando o usuário clicar nesse link, um novo Outlook-E-Mail será aberto e o destinatário é destinatário@email-tld, o assunto é "Este é o assunto" e o corpo é "Olá!".Todos esses campos já estão preenchidos no link.

Vou jogar isso lá fora porque foi perguntado.

Mailto tem muitas desvantagens;principalmente tamanho.Como o remetente precisa fazer muita formatação no texto do e-mail, o código HTML gerado pode ocupar muito espaço que falha ao usar o mailto.

obrigado pela sugestão embora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top