---
title: "Como fazer o bot Discord enviar DM automática para membros"
description: "Configure o bot Discord para enviar mensagens diretas (DM) automáticas para membros: ao entrar no servidor, ao receber um cargo ou em resposta a um comando específico."
url: "https://streethosting.com.br/guias/bots-discord/bot-discord-enviar-mensagem-dm-automatica"
category: "bots-discord"
slug: "bot-discord-enviar-mensagem-dm-automatica"
datePublished: "2026-06-18"
dateModified: "2026-06-18"
author: "Equipe StreetHosting"
difficulty: "intermediario"
language: "pt-BR"
keywords:
  - "bot discord enviar mensagem dm automatica"
  - "discord bot dm usuario javascript"
  - "bot discord direct message automatico"
  - "discord.js enviar dm membro"
---

# Bot Discord enviando DM automática: como configurar

DMs automáticas são úteis para boas-vindas privadas, confirmação de compras e notificações importantes. Veja como implementar com discord.js e lidar corretamente com erros de DM fechado.

> **Resposta rápida**
>
> Para enviar DM com discord.js, use `await member.send("mensagem")` ou `await user.send("mensagem")`. Sempre envolva em `try/catch` para tratar usuários com DM fechado sem quebrar o bot.

## Quando usar DM automática

DMs automáticas são úteis em situações específicas onde uma mensagem privada faz mais sentido do que uma notificação pública:

- Boas-vindas privadas com instruções detalhadas ao entrar no servidor
- Confirmação de compra de cargo VIP ou assinatura
- Notificação de punição (aviso, mute, ban temporário)
- Alerta de evento exclusivo para membros de um grupo específico
- Resultado de formulário ou inscrição submetida

> **Atenção**
>
> Não use DMs automáticas para fins de marketing ou propaganda sem consentimento. O Discord considera isso spam e pode banir o bot. Use DMs apenas para informações diretamente relacionadas ao servidor e ações do usuário.

## Enviar DM com discord.js

No discord.js, você pode enviar DM via um objeto *User* ou um *GuildMember*. O método é o mesmo nos dois casos:

```
// Via GuildMember (dentro de um servidor)
await member.send('Olá! Esta é uma DM automática.');

// Via User (fora do contexto de servidor)
const user = await client.users.fetch('ID_DO_USUARIO');
await user.send('Olá! Esta é uma DM automática.');
```

> **Dica**
>
> Prefira sempre usar `member.send()` quando estiver dentro do contexto de um servidor. É mais direto e não precisa buscar o usuário separadamente.

## DM ao entrar no servidor

Combinando com o evento `guildMemberAdd`, envie uma DM de boas-vindas privada ao mesmo tempo que a mensagem pública no canal:

```
client.on('guildMemberAdd', async (member) => {
  try {
    await member.send(
      `Bem-vindo(a) ao servidor, ${member.user.username}!\n` +
      'Leia as regras em #regras antes de interagir.\n' +
      'Se tiver dúvidas, abra um ticket em #suporte.'
    );
  } catch (err) {
    console.log(`Não foi possível enviar DM para ${member.user.tag}: ${err.message}`);
  }
});
```

## DM ao receber um cargo

Para enviar DM quando um membro recebe um cargo específico, escute o evento `guildMemberUpdate`:

```
const ID_CARGO_VIP = '123456789012345678';

client.on('guildMemberUpdate', async (oldMember, newMember) => {
  const temCargoNovo = !oldMember.roles.cache.has(ID_CARGO_VIP)
    && newMember.roles.cache.has(ID_CARGO_VIP);

  if (!temCargoNovo) return;

  try {
    await newMember.send('Parabéns! Você agora é VIP no servidor.');
  } catch (err) {
    console.log('Erro ao enviar DM:', err.message);
  }
});
```

## Tratar erros de DM fechado

Muitos usuários desativam DMs de servidores nas configurações de privacidade do Discord. Sem tratamento de erro, o bot vai quebrar (throw) ao tentar enviar. Sempre use try/catch:

```
try {
  await member.send('Mensagem importante');
} catch (err) {
  if (err.code === 50007) {
    // DM desativada pelo usuário — falha silenciosa é esperada
    console.log(`DM fechada para ${member.user.tag}`);
  } else {
    // Erro inesperado — registre para investigação
    console.error('Erro inesperado ao enviar DM:', err);
  }
}
```

O código de erro **50007** significa "Cannot send messages to this user". Trate isso como uma falha esperada e silenciosa, não como um erro crítico do bot.

Para o bot funcionar 24 horas enviando DMs e notificações, ele precisa estar hospedado em produção. Veja como [hospedar bot Discord 24/7](https://streethosting.com.br/guias/bots-discord/hospedagem-bot-discord-24-7).

## Perguntas frequentes

### O bot pode enviar DM para qualquer usuário no Discord?

O bot só pode enviar DM para usuários que compartilhem pelo menos um servidor com ele. Além disso, o usuário pode ter as DMs de servidores desativadas nas configurações de privacidade do Discord, o que vai gerar um erro ao tentar enviar.

### Como saber se o usuário tem DM desativada?

Não é possível verificar antes de tentar. A forma correta é tentar enviar a DM e capturar o erro com try/catch. O código de erro 50007 ('Cannot send messages to this user') indica que o DM está fechado.

### Posso enviar DM em massa para todos os membros do servidor?

Tecnicamente sim, mas o Discord limita fortemente essa prática. Enviar muitas DMs rapidamente pode levar o bot a ser banido por spam. Nunca envie DMs em massa sem consentimento explícito dos usuários.

### Como enviar embed via DM no Discord?

A mesma sintaxe de embed que funciona em canais funciona em DMs. Use user.send({ embeds: [embed] }) com um EmbedBuilder configurado. O limite de tamanho de embed se aplica igualmente.

## Guias relacionados

- [Como configurar mensagem de boas-vindas automática no Discord com bot](https://streethosting.com.br/guias/bots-discord/bot-discord-boas-vindas-mensagem-automatica.md)
- [Como criar bot Discord com slash commands](https://streethosting.com.br/guias/bots-discord/criar-bot-discord-slash-commands.md)
- [Hospedagem de bot Discord 24/7 no Brasil](https://streethosting.com.br/guias/bots-discord/hospedagem-bot-discord-24-7.md)

## Produtos citados

- https://streethosting.com.br/bots

## Dados estruturados

```json
[
  {
    "@context": "https://schema.org",
    "@type": [
      "Article",
      "TechArticle"
    ],
    "headline": "Bot Discord enviando DM automática: como configurar",
    "name": "Como fazer o bot Discord enviar DM automática para membros",
    "abstract": "DMs automáticas são úteis para boas-vindas privadas, confirmação de compras e notificações importantes. Veja como implementar com discord.js e lidar corretamente com erros de DM fechado.",
    "description": "Configure o bot Discord para enviar mensagens diretas (DM) automáticas para membros: ao entrar no servidor, ao receber um cargo ou em resposta a um comando específico.",
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18",
    "author": {
      "@type": "Organization",
      "name": "Equipe StreetHosting"
    },
    "publisher": {
      "@type": "Organization",
      "name": "StreetHosting",
      "url": "https://streethosting.com.br"
    },
    "inLanguage": "pt-BR",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://streethosting.com.br/guias/bots-discord/bot-discord-enviar-mensagem-dm-automatica"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "O bot pode enviar DM para qualquer usuário no Discord?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "O bot só pode enviar DM para usuários que compartilhem pelo menos um servidor com ele. Além disso, o usuário pode ter as DMs de servidores desativadas nas configurações de privacidade do Discord, o que vai gerar um erro ao tentar enviar."
        }
      },
      {
        "@type": "Question",
        "name": "Como saber se o usuário tem DM desativada?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Não é possível verificar antes de tentar. A forma correta é tentar enviar a DM e capturar o erro com try/catch. O código de erro 50007 ('Cannot send messages to this user') indica que o DM está fechado."
        }
      },
      {
        "@type": "Question",
        "name": "Posso enviar DM em massa para todos os membros do servidor?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tecnicamente sim, mas o Discord limita fortemente essa prática. Enviar muitas DMs rapidamente pode levar o bot a ser banido por spam. Nunca envie DMs em massa sem consentimento explícito dos usuários."
        }
      },
      {
        "@type": "Question",
        "name": "Como enviar embed via DM no Discord?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "A mesma sintaxe de embed que funciona em canais funciona em DMs. Use user.send({ embeds: [embed] }) com um EmbedBuilder configurado. O limite de tamanho de embed se aplica igualmente."
        }
      }
    ]
  }
]
```
