Share via


Perfis do Database Mail

Um perfil do Database Mail é uma coleção ordenada de contas relacionadas do Database Mail. Para enviar emails, você deve ser membro da função DatabaseMailUserRole no banco de dados msdb e ter acesso a pelo menos um perfil do Database Mail. Os perfis permitem aos administradores de banco de dados reconfigurar procedimentos armazenados e aplicativos de banco de dados que usam email sem ter que alterar o código de aplicativo. Por exemplo, pode-se configurar um perfil com um conjunto de contas de email durante o desenvolvimento e o teste do aplicativo, atualizando-o, em seguida, com um conjunto diferente de contas para migrar o aplicativo à fase de produção. O aplicativo usa o mesmo nome de perfil, mas envia emails utilizando uma lista diferente de servidores de email.

ObservaçãoObservação

Como o Database Mail não usa a interface MAPI (Messaging Application Programming Interface), seus perfis não são perfis de email MAPI. O Database Mail não usa perfil do SQL Mail.

Os perfis melhoram a confiança nos casos em que um servidor de email se torna inacessível ou incapaz de processar mensagens. Cada conta no perfil possui um número de seqüência. O número de seqüência determina a ordem na qual o Database Mail usa as contas no perfil. Para uma nova mensagem de email, o Database Mail usa a última conta que enviou uma mensagem com êxito ou a conta com o número de seqüência mais baixo, caso ainda não tenha sido enviada nenhuma mensagem. Se essa conta falhar, o Database Mail usará a conta com o próximo número de seqüência mais alto, e assim por diante, até que o Database Mail envie a mensagem com êxito ou a conta com o número de seqüência mais alto falhe. Se a conta com o número de seqüência mais alto falhar, o Database Mail irá pausar as tentativas de enviar o email pelo período de tempo configurado no parâmetro AccountRetryDelay de sysmail_configure_spe, em seguida, iniciará o processo de tentar enviar o email novamente, começando pelo número de seqüência mais baixo. Use o parâmetro AccountRetryAttempts de sysmail_configure_sppara configurar o número de vezes que o processo de email externo tenta enviar a mensagem de email usando cada conta no perfil especificado.

Se existir mais de uma conta com o mesmo número de seqüência, o Database Mail utilizará apenas uma delas para uma dada mensagem de email. Nesse caso, o Database Mail não pode garantir qual das contas será utilizada para o número de seqüência em questão, nem que a mesma conta seja utilizada de mensagem a mensagem.

Os perfis também ajudam os administradores de banco de dados a controlar o acesso a email. É necessária associação à função DatabaseMailUserRole para poder enviar Database Mail. Os perfis propiciam flexibilidade extra aos administradores para controlar quem envia email e quais contas são utilizadas. Para cada perfil particular, o Database Mail mantém uma lista de usuários que têm permissão para enviar emails por meio do perfil. Perfis públicos estão disponíveis a usuários ou funções de banco de dados msdb que também sejam membros de DatabaseMailUserRole.

Por padrão, os perfis são particulares e os usuários não têm acesso a eles. Para tornar público um perfil, conceda acesso ao usuário ''público'' ou à ID de usuário 0. Para obter mais informações sobre concessão de acesso a perfis, consulte sysmail_add_principalprofile_sp (Transact-SQL).

Um perfil pode ser um perfil padrão. Nesse caso, os usuários podem enviar email por meio do perfil sem ter que especificá-lo explicitamente. Se o usuário que envia a mensagem de email tiver um perfil particular padrão, o Database Mail irá utilizá-lo. Se o usuário não tiver nenhum perfil particular padrão, o sp_send_dbmail usará o perfil público padrão do banco de dados. Se não houver nenhum perfil particular padrão para o usuário e nenhum perfil público padrão para o banco de dados, o sp_send_dbmail retornará um erro. Em todo caso, o usuário deve ser membro da função DatabaseMailUserRole para poder enviar Database Mail.