Você está desenvolvendo um plugin server-side para o TFS (como um event handler) que precisa enviar email?

Uma estratégia bastante interessante seria usar o mesmo servidor SMTP já configurado para o TFS – dessa forma você não precisa manter essa configuração em seu plugin.

Configurações de SMTP do TFS - vamos ver como lê-las programaticamente?

Essa configuração – e muitas outras – está gravada no TFS Registry. Para acessá-la, use o exemplo de código abaixo (cortesia do MVP português Tiago Pascoal):

internal class EmailSettings
{
    private TfsTeamProjectCollection _tfs;
    private string smtpServer, fromAddress;
    private Nullable emailEnabled;

    public EmailSettings(TfsTeamProjectCollection tfs)
    {
        tfs = tfs;
    }

    public string GetSMTPServer()
    {
        if (smtpServer != null) return smtpServer;

        return smtpServer = GetValueFromRegistry("/Service/Integration/Settings/SmtpServer");
    }

    public string GetFromAddress()
    {
        if (fromAddress != null) return fromAddress;

        return fromAddress = GetValueFromRegistry("/Service/Integration/Settings/EmailNotificationFromAddress");

    }

    public bool GetEmailEnabled()
    {
        if (emailEnabled.HasValue) return emailEnabled.Value;

        emailEnabled = GetValueFromRegistry("/Service/Integration/Settings/EmailEnabled");

        return emailEnabled.Value;
    }

    private T GetValueFromRegistry(string key)
    {
        ITeamFoundationRegistry service = tfs.ConfigurationServer.GetService();

        return service.GetValue(key);
    }
}

Um abraço,

clip_image001[4]

Igor Abade V. Leite

Microsoft MVP – Visual Studio ALM  – Brasil

https://mvp.support.microsoft.com/profile/igor.leite

Twitter: @igorabade

 

Igor Abade

Igor Abade V. Leite ([email protected]) é Microsoft MVP (Most Valuable Professional) de Visual Studio ALM desde 2006. Palestrante em diversos eventos da comunidade de desenvolvimento de software (TechEd Brasil, The Developers’ Conference, DevOps Summit Brasil, Agile Brazil, Visual Studio Summit, QCON e outros), é também autor de artigos em revistas e sites como o MSDN Brasil. Desde março de 2011 é um dos sócios da Lambda3, uma consultoria especializada em ALM, desenvolvimento de software e treinamentos. Siga-o no Twitter @igorabade.