Pergunta

Há já algum tempo que eu estive armazenando minha conexão e configurações de aplicativos em um arquivo externo e apenas referenciar esse arquivo através do meu web.config. Isso funciona muito bem porque me permite manter cadeias de conexão separados e configurações de aplicativos. Isto é realmente útil desde que eu encontrar durante o desenvolvimento I, muitas vezes, fazer muitas mudanças ao webconfig e eu odeio ter que gerenciar o ambiente específico valoriza cada vez que eu preciso atualizar meu web.config.

Existe uma maneira que eu posso conseguir isso com ele seções de configuração SMTP no web.config.

Foi útil?

Solução

Claro, você pode usar o atributo configSource.

Exemplo:

<system.net>
  <mailSettings>
   <smtp configSource="MailSettings.config"/>
  </mailSettings>
</system.net>

Em seguida, coloque seus dados de configuração mailSettings em MailSettings.config

Então seu arquivo MailSettings.config teria algo como:

    <network 
    host="relayServerHostname" 
    port="portNumber"
    userName="username"
    password="password" />

Atualização : Parece que ele pode precisar de realmente ir no nó SMTP para funcionar corretamente, então eu tenho atualizado o código acima para indicar que - mesma idéia, só que este deve funcionar. :)

Outras dicas

Eu não tenho certeza se o que eu tenho aqui é apenas para versões mais recentes do .NET. Eu tenho um erro de execução usando a resposta aceita.

Por favor, atualize a resposta aceita com o bloco de código abaixo, se trabalhar com versões mais recentes do .NET. O nó SMTP também deve estar no arquivo separado - não apenas o nó de rede. O nó smtp inteiro no arquivo real Web.config é substituído pelo arquivo que colocou aqui -. Ao contrário dos appSettings onde parece adicionar a ele

Web.config -

  <system.net>
        <mailSettings>
          <smtp configSource="your-source-file">
          </smtp>
        </mailSettings>
    </system.net>

Seu arquivo -

   <smtp from="noreply@example.com">
      <network
        host="your-host"
        port="your-port"
        userName="your-user-name"
        password="your-password"/>
    </smtp>

Meu software armazena no registro, mesmo em produção.

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